usb: ci_udc: dynamically alloc USB request objects

Signed-off-by: Stephen Warren <swarren@nvidia.com>
usb: ci_udc: remainder of "allow multiple buffer allocs"

This is the remainder of:
2813006fecda usb: ci_udc: allow multiple buffer allocs per ep
... that isn't in early split out commits

I've also squashed in the following, to avoid any bugs that are already
fixed upstream:
bdf81611e444 usb: ci_udc: fix freeing of ep0 req
a2d8f929857b usb: ci_udc: pre-allocate ep0 req
7484d84cbb58 usb: ci_udc: detect queued requests on ep0
8630c1c7e395 usb: ci_udc: parse QTD before over-writing it

Signed-off-by: Stephen Warren <swarren@nvidia.com>