Implement debounce sequence according to USB 2.0 specs.

This replaces waiting a fixed time of 300ms for the device power to
stabilize. In the ideal case this reduces the boot time by 200ms per
connected device (including internal hubs).

This is very similar to what Linux implements and we use the same time
values. An interval of 25ms is used to check for connection state
changes, the stable time is at least 100ms as per the USB specs and the
whole process times out after 1.5 seconds.
Reduce port reset recovery time from 250ms to 50ms.

The specs say the reset recovery time is 10ms only. The extra 40ms are
taken from the Linux hub driver.
Poll more frequently for the first explore.

This reduces needless waiting for the special case of the polled and
synchronous first explore.
Fix build with tracing turned on.