BuildStep: Make getStepFactory return a factory function.

Previously, it returned a factory, and arguments for the factory.
This was used to print an error when the factory failed. This is moved
into the factory function itself. The config also checks step locks. This
functionality will be removed.
Remove deprecated support for passing step factories a tuples.

Instead, we support either BuildStep objects, or 0-argument callables.
MasterConfig: Don't check for slave lock conflicts.

With the change to representing step factories as callables, we
no longer are able to examine the step arguments to check for a locks
argument, so remove the check.
Remove silly call of __init__ from __new__ in BuildStep.
Remove s().
Create a _BuildStepFactory to capture the arguments to BuildStep subclasses.

We use an instance of this class, rather than a closure mostly to make it
easier to test that the right factories are getting created.
Attach SQLAlchemy listeners to objects, not classes

Otherwse listeners get duplicated when running tests.

Fixes #2267.
fix typo

Credit to sa1 in https://github.com/buildbot/buildbot/pull/371
Fix handling of stdin in master-side gist step.

RemoteShellCommand didn't in fact take the extra arguments that
the test fake did, so this wasn't caught by the tests.

Refs #2269.
Add a IBuildStepFactory, and make BuildFactory require instances.

Rather than having a class implementing __call__ representing step
factories, use a class with a real method.
use incremental option from https://gist.github.com/2078378
Merge branch 'pull353'

* pull353:
  use incremental option from https://gist.github.com/2078378
  Re-refactor Try_Job.parseJob based on reviews of previous patch.
  Remove lambdas from assertRaises tests.
  Change non-dict try properties test to use assertFailure.
  Refactor Try_Job parseJob method.
  Add test to confirm that non-dict try properties raises AttributeError.
  Handle malformed JSON in try job file to raise BadJobfile exception.
  Transmit patchlevel as int in v5 try job file.
  PEP 8 cleanup; mostly whitespace and long lines.
Add buildbotbin option for try command.

Allows specification of the buildbot binary to use to run tryserver on
the buildmaster host. Handy for buildbot installations in virtualenvs.
Delete Python2.4-specific code for use of md5 library.
Add documentation of the buildbot try --buildbotbin= option.
Merge branch 'pull354'

* pull354:
  Add documentation of the buildbot try --buildbotbin= option.
  Delete Python2.4-specific code for use of md5 library.
  Add buildbotbin option for try command.
add Bryce to MAINTAINERS.txt
Merge branch 'bug2249'

* bug2249:
  new test
Pass -p to 'git apply', pass correct patch component
Merge branch 'pull372'

* pull372:
  Pass -p to 'git apply', pass correct patch component
  Fix handling of stdin in master-side gist step.