Fail hard on unhandled exceptions.

After trying the alternatives:  (1) ignore-and-continue (e.g., for
PeriodicTask, QueueTask) or (2) die-and-continue (e.g., thread stops)

They both are less than ideal.  The default should be to kill the whole
program on exceptions.  This is the easiest way to encourage service
owners to fix broken services or tasks, and/or to be more resilient
of transient error scenarios.

Fixes #36