Make a few improvements to the SioSerial struct:
- Have init() return Self. It's more ergonomic to create and initialize
the empty struct in one call.
- Enable FIFO. The GBA has a 4-byte UART FIFO. This makes it less
likely to lose received bytes.
- Derive Clone on SioSerial so it can be split and shared with an
interrupt.
- Derive Debug on SioError so results can be unwrapped.
* Add Serial and GPIO registers and implement embedded_hal traits
Use VolAddress and phantom_fields to populate the SIOCNT, RCNT, and
SIODATA8 registers. Implement embedded_hal serial traits around an empty
SioSerial struct.
Hide serial read and write traits behind a "serial" feature flag
to make embedded-hal and nb dependencies optional.
* UART echo example
Enable the serial feature for this example. Provide a pinout
diagram to assist people with wiring up a USB to UART adapter.