USB HID: Avoid allocating a huge amount of memory (second try).
10204490 / MR 80 ensured that we didn't grow field.usages due to an underflow, but it neglected to check for a sane array size. Add another check to make sure we don't wmem_array_grow() too much. Fixes #17165 (closed) and fixes #16809 (closed) more completely.
(cherry picked from commit 785e291c)