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.
comment about maybeDeferred use; better log.err message
Reference relevant bug.
Merge pull request #612 from djmitche/bug2427

Handle slave disconnections during build start better.