Adds `sleepout' prototype which is a comic combination of callout(9) and
taskqueue(8) only for USB drivers to implement one step timer. In
current USB drivers using callout(9) interface they all have two step
execution flow as follows:
- callout callback is fired by the interrupt context. Then it needs to pass it to USB process context because it could sleep(!) while callout(9) don't allow it.
- In the USB process context it operates USB commands that most of times it'd be blocked at least 125 us (it'd be always true for USB)
In a view of driver developer it'd be more convenient if USB stack has a
feature like this (timer supporting blocking). This's an experimental.