Scheduler Data API implementation

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.