DynamicChoiceStringParameter: a base class for dynamic lists in ForceScheduler

Provide a better mechanism for generating dynamic content for ForceScheduler, and
adjust the InheritBuildParameter to use this new base class.
ChoiceStringParameter.getChoices: use a member function instead of DynamicStringChoiceParameter
ChoiceStringParameter.getChoices: a bit more documentation
cli: removed unreachable code in scripts.runner

Removed unreachable code in
scripts.runner.SendChangeOptions.postOptions() method. 'who' and
'master' are listed as required options for 'sendchange'
subcommand. The postOptions() will not be called unless both 'who'
and 'master' options are specified.
unit tests of invalid 'buildbot user' command's options

Unit tests on exception code paths in
scripts.runner.UserOptions.postOptions(). Check that various
invalid options combinations for 'buildbot user' subcommand
raises the usage.UsageError exception.
cli: broke-out code to validate master option into a function
cli: validate master option for 'buildbot sendchange' command

If master (-m, --master) option is not valid, print user friendly
error message "master must have the form 'hostname:port'".
cli: validate master option for 'statuslog' and 'statusgui' commands

For 'buildbot statuslog' and 'buildbot statusgui' subcommands, validate
master (-m, --master) option. If not valid print user friendly
error message "master must have the form 'hostname:port'".
cli: validate master option for 'buildbot debugclient' command

If master (-m, --master) option is not valid, print user friendly
error message "master must have the form 'hostname:port'".
cli: validate master option for 'buildbot try' command

When connection type 'pb' is specified, check that master option
(-m, --master) is present and have valid syntax. If master is missing
or have invalid syntax, print user friendly error message.
Merge branch 'cli-option-master' of git://github.com/elmirjagudin/buildbot
Merge branch 'DynamicParameter' of git://github.com/jaredgrubb/buildbot
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'