MFC r248246:

- Make quirk for reading device descriptor from broken USB devices.
Else they won't enumerate at all:
hw.usb.full_ddesc=1
- Reduce the USB descriptor read timeout from 1000ms to
500ms. Typical value for LOW speed devices is 50-100ms.
- Enumerate USB device a maximum of 3 times when a port
connection change event is detected, before giving up.
MFC r254572:
Force keyboards which don't have the required
HID fields to use the USB BOOT protocol for now.

PR:		usb/181425
MFC r255235:
  Remove unused code and sort variables declarations.

PR:		kern/181822
Merge remote-tracking branch 'upstream-github/stable/9' into stable/9