Got extensions running on their own thread in a prewake phase

Added a state to AlarmStateManager (DAYSPRING_STATE) that causes a
wake 2 minutes in advance of an alarm (FIRED_STATE) that causes
any registered extension to run. If a Dayspring alarm is registered
very close to the time it is to fire, it will be delayed by up to
2 minutes to let the extensions run first.

Extensions now get a copy of the alarm instance they are preparing
for, because it might be useful to time.

Added IntroExtension, which creates a greating to go at the front
of other things.

Handling publishing the extension data in DayspringExtension so
implementors have one less thing to worry about.