MQ support
set up MQ and produce messages (WIP)
consume change messages, removing change polling and subscriptions
consume buildrequest messages, removing polling and buildreq subscriptions
consume buildset messages, remove buildset subscriptions
add buildrequest claiming details
start_consuming -> startConsuming
better error checking for mq parameters, now with more DRY
make space for nine's release notes
require a mock-0.8.0 for tests
correctly detect mock version
split up developer docs into three sections
Merge branch 'master' into nine

* master:
  Pass '' for codebase in trigger.py - Refs #2289.
  Don't cache json build status objects; they are never cleaned up.
  docs fixes
  fix docs typos
Merge branch 'master' into nine

* master:
  fix pyflakes
  clean up returnValue calls
  fix docs about  as mentioned in pull #385
  fix busted coverage generation
  Move method to base scheduler
  Update docs and tests based on feedback
  Make sure build steps can raise BuildStepFailed
  Should use username not owner
  Change the reason text to not be web specific
  Move webstatus specific code to b.s.w.builder
  Use a specific error message instead of ValueError
  get_from_post -> getFromKwargs
  Remove Python2.4ism
  Refactor so that ForceScheduler isn't as tightly coupled to HTML
  Use a dict() for r.args (the real one is a dict anyway)
  Break out property gathering and scheduling into seperate functions
Merge branch 'master' into nine

* master:
  Work around incorrect big status
  Previous commit has no effect < Python2.7.  Oh well.
  Work around incorrect big status
  Use 7bit or 8bit encoding for emails
  clean up cmdline docs
  Fix forcing builds
  Add --nodaemon to the Command-line Tool documentation.
  Add nodaemon option tests to master.
  Clarify buildbot --nodaemon.
  Clarify buildslave --nodaemon.
  Add option 'nodaemon' to buildbot start/restart.
  Add option 'nodaemon' to buildslave start/restart.
add buildbot.util.pathmatch
nascent data API

This only implements changes, and implements them in a
not-very-efficient and not-very-scalable way.
begin testing db api as an interface
Merge branch 'master' into nine

* master: (78 commits)
  gotAllRevisions now returns an empty dict when the property is not set
  typo
  use empty dictionairy if no got_revisions found
  in transposed gridview filter out builds with more than 1 sourcestamp. Fixed transposed grid
  in gridview filter out builds with more than 1 sourcestamp
  Make sure category is properly updated when loading buildstatus from pickle.
  remove remaining deferredGenerator uses from buildmaster
  fix now-incorrect warning for an un-upgraded master
  release notes for multirepo
  Filter out all builds with more than one sourcestamp
  Support for multiple sourcestamps in build status
  Fixes #2214: Add 'codebase' to Source base; add 'descriptionSuffix' to Source and Shell
  fix pyflakes
  Corrected typo in ForceScheduler example.  Fixes #2294.
  Change fakesource according to real SourceStamp
  always return new (cloned) objects if absolute sourcestamps have been requested
  Assign ?? to revision if unknown
  Add clone method to sourcestamp
  Include all sourcestamps as list of dicts in the build status dictionary.
  typo
  ...

Conflicts:
	master/buildbot/schedulers/base.py
	master/buildbot/test/fake/fakedb.py
	master/buildbot/test/unit/test_status_mail.py
	master/docs/release-notes.rst
Merge branch 'master' into nine

* master:
  add some tests for Change