Default state: Handling requests, top-level

The usb_request function will ultimately need to dispatch on the
`bmRequestType` and `bRequest` fields and handle the request. We do each
level of dispatch in a separate function. First, see if the request is
directed at the Device, one of its Interfaces, or any of their
Endpoints.

In the Default state, we only handle Device requests; will add more
recipients later.