Fix latent buildslave's _soft_disconnect method

This derives entirely from https://gist.github.com/seankelly/5034964,
primarily written by Jc2k.
cleanup

* add relnote
* add a comment
* wrap long line
* and add some error handling
Merge branch 'pull646'
BuildslaveChoiceParameter and EnforceChosenSlave: force scheduler hooks for explicit slave control
enforceChosenSlave: address review comments