Default state: What to do on reset

Last time, we left one bit hanging. We said we don’t know what to do on
reset. Now we know what to expect, so we can think about it.

* We need to be able to receive Reset, Suspend and Resume events. The
  `EFSR` bit in `IEN` gives us that but we will need to implement
  reaction to the `USUS` flag.
* We also need to receive USB requests. These come as data received via
  endpoint 0, so we need to enable `EF` in `IEN` and `URXIE0` in `UIE`;
  when data comes in, we get a USB interrupt with the `URXD0` flag set.
* We will also have to transmit data in response to the requests. The
  MG84FL54 has a limited FIFO buffer through which we can transmit, so
  we need to know when the transmission is complete and write more data
  into the FIFO. This is controlled by the `UTXIE0` flag in `UIE`; we
  will receive a USB interrupt with `UTXD0` set.
Default state: Receiving requests

When the host sends us anything, we will receive a USB interrupt with
the flag `URXD0`. I’m assuming that the MG84FL54’s FIFO is able to
buffer up to 64 bytes of data (which can accommodate the USB request
setup token just fine) and give us a USB interrupt with the `RXSETUP`
flag set in the Endpoint 0’s `RXSTAT` register.

Now we need to read it out of the FIFO. To read the received data, we
clear `EDOVW` in `RXSTAT` and then repeatedly read the `RXDAT` register.

We then acknowledge the receipt of the Setup token, handle the request,
and tell the USB subsystem that we’re done with this transfer. If
request handling fails, we stall the endpoint 0.