Add schedulers to the data API

Schedulers are only active on one master at a time.  This commit adds
support for schedulers to be configured and started (as Twisted
services), but not active.  The scheduler objects poll regularly and
become active if the scheduler is not active on any other master.

When a master shuts down - either normally or due to a heartbeat timeout
- it drops ownership of all schedulers for which it was active.

Other than that, this adds some basic endpoints and reflects the
findSchedulerById and setSchedulerMaster db methods as update methods.