Add the initial state machine.

This is not the full state machine, with increasing pause times and
such.  Some things that need to be added:

- Increasing the required pause time if the button is pressed too
  often.

- The buzzer at the front door, that gives a pleasant tone if the
  doorbell is actually rung, and a harsh buzz if the button is pressed
  too soon.

- Ringing the real door bell.  The stub is present in BSP_alarm().

- The battery charging stuff.

Signed-off-by: Russell Steicke <russells@adelie.cx>