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.
remove yield from defer.returnValue calls
document scheduler failover behavior in the manual
add README item
point to utils.rst for docs of compare_attrs
remove outcommented code
call fail() with an exception
use gatherResults for parallel goodness
remove redundant maybeDeferred calls
handle exceptions in _activityPoll
Merge branch '9/schedulerdata' into nine