Fix outstanding bug in scheduler.
Add Scheduler role; provide uncaught error model.

Previously, unhandled exceptions in scheduled items could just vanish.
Now they will not, and there is an API for setting a per-item handler
as well as the default global fallback one. Since much of this can be
done independent of an individual scheduler, this is mostly pulled out
into a role.