- handle error conditions
- handle disconnect more gracefully (ie. make calling layer aware that the device doesn't exist somehow)
- usbhub:
  - proper client enumeration (esp. detach)
  - change detection
  - power management
- handle interrupts more cleverly:
  create a new queue for the interrupt with a couple of TD sequences,
    - each ending with "breadth first" flag
    - linked as a chain
  add that queue at the appropriate times in front of the default structure so the max latency is honored
    - only one intr chain per framelist item, so it must be arranged appropriately
  reads from usb device just look at "invalidated" tds and the results they got
  handled tds get reactivated as a ring structure
    - added as child of the oldest td
    - queue header already dropped the td, so no issue there

  this setup ensures that:
  - the max latency of the device is honored
  - the client knows the right order of the data
  - there is no need for an interrupt handler
    - but must be polled at least max latency * num tds times -> more tds = less time pressure
