Mammoth, unhygeinic commit that touches everything, yuck

I didn't follow Linus's advice, 'commit early, commit often'.  Sorry.

Move change sources into config file:
- currently only supports git poller

Move factory definitions into config file:
- Pull shell code out into buildsteps.sh:
  - shell script called as 'buildsteps.sh <step>'
  - contains Kent's original steps, less the initial git steps
  - if config file build factory has the optional 'buildsteps-script'
    attribute, copy that to build slaves in first step
- Move build steps into config file:
  - 'source.git' type step
  - 'script' (default) type runs buildsteps script with step name as
    argument
  - 'script.tty' type does the same, but with a tty

Schedulers:
- FIXME this is a hack until we have a more complex example to model
- For now, each change source gets two hard-wired schedulers, 'all'
  and 'force'
- Each scheduler gets all builders
- Both of the above may need to be configurable from config file,
  we'll see

Odds and ends:
- remove obsolete 'repo' configuration dict from master.cfg
- update config.yaml.sample examples and comments
- add debugging flag and print stuff when set
buildsteps.sh:  sourcetree step:  rm -rf old source directory
Add local git repo HOW-TO and small changes to config.yaml.sample
buildsteps.sh:  exit with meaningful message and correct code