Initial docs on messaging protocol
NEW: Add NightlightState.onSerialCommandGoto() for switching states based on serial input.
NEW: Add ControllerState, a simple controller.

This controller will attach any device that announces itself, and trigger a MSG_COMMAND_SEND message with no data to the most recently paired device when a “B” command is received from the serial.

Note that this is an experimental PoC and is likely to change a lot in future commits.
FIX: Don’t wait 5s before sending the first hello.