Build steps should retry if the slave is lost

If the slave is lost, it's not a failure of buildbot or the build
running, so we should just retry the job.  A bunch of the source
control steps already did this as well as `LoggingBuildstep`, but
this change centralizes all that logic into `Buildslave`.  All a
consumer has to do is add `Buildstep.failed` as an error handler and
everything will just work.

Since this is fixed in master, but broken on 0.8.8 for source control,
this change adds explicit tests to ensure that this isn't broken in the
future as well (since these tests were not added when the fix was added
originally).
Merge sdwilsh/buildbot:pr-retry-on-slave-lost (PR #1049)

+pep8, pyflakes
re-add checkDisconnect as a stub for compatibility, and mention in relnotes
pyflakes