Add ability to pause build-slaves.

Signed-off-by: Tom Prince <tom.prince@ualberta.net>
Start implementing option to pause a slave.

Signed-off-by: Tom Prince <tom.prince@ualberta.net>
- New WIP for Clean shutdown.
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
Monkey patch recent gatherResults on old versions of twisted.

Newer versions of gatherResults support consumeErrors, which we would like to use.
Merge branch 'gatherResults'
- Changed graceful to clean.  Added also some docs.
Handle slave disconnections during build start better

This:
 - checks for a slave disconnection at the last possible moment
 - handles exceptions from startBuild's deferred better
 - treats errors in startBuild as EXCEPTION, not FAILURE

Fixes #2427.
document scheduler failover behavior in the manual
comment about maybeDeferred use; better log.err message
add README item
Reference relevant bug.
Merge pull request #612 from djmitche/bug2427

Handle slave disconnections during build start better.
Use eventual.eventually more consistently.
- Fixed test_scripts_stop.py.  Changed short option from g to c. Fixed subfunction s/sighup/sigusr1
Merge branch 'eventually' of git://github.com/tomprince/buildbot
- Fixed stop_clean.
s/Shutdowns/Shuts down/
- Changed SIGHUP to SIGUSR1.