XHCI USB: some fixes.

* AllocateDevice(): don't include the root port in the route.
* SubmitNormalRequest(): fail if we couldn't allocate the a descriptor.
Devices: Check out of bound array access on category strings.

* Computes the length of the category strings array.
* Checks against this length before accessing the array
* Improves comment
* Should fix #10186

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
usb_disk: accept B_DEV_MEDIA_CHANGED as a ready unit.