Don't require that all synther subdevices are configured.
Log removal of timer events.
Refactor to add a device method that returns a unique semi-human-readable
"internal name" string for debugging.
Subscribe to events on the button, not the keypad.

Fixes #8.
Add some paranoid verification to delays "timer fired" handler.

This isn't enough to make up for the fact that tabletop keypads
apparently send only key-pressed events, and not key-released events,
even when plugged into a power supply.
Extra logging for event registration/dispatch.
Minor cleanup. Hoisted a common case instead of repeating it.
Log device state before invoking handlers, instead of between
normal handlers and persist special case.