Move ConfigErrorsMixin to buildbot.test.util.config.

We want to be able to test that various constructions properly
report all appropriate config errors.
Add tests for deferredrred Interpolate.
Rewrite Interpolate.

This makes it support returning deferreds everywhere and also
parses the format string and keys at configure time.
Merge remote-tracking branch 'origin' into prop-defer
Re-add unit tests for customizable description and descriptionDone on source steps.

These accidently got removed in e84ab229c0dcf4453103a35f6fc39ce1fcb4f6b9. These were
originally added in b7444ab238ba6dbf87039aecd97727ee243339ca.
add release notes for 0.8.6p1
Merge branch 'buildbot-0.8.6'

* buildbot-0.8.6:
  add release notes for 0.8.6p1
Moved pydoc stuff into the manual, added comments for non-public methods.
No tab characters in docs.

Don't use super().
Fix croniter bug #9

Fix from https://github.com/taichino/croniter/issues/9#issuecomment-4751137
Don't call _ref_key from put() -- matches previous behavior.

In builder.py, use miss_fn_kwargs to pass a new value through to
the buildCache.
Merge branch 'sync-lru2' of git://github.com/szager/buildbot into synclru

* 'sync-lru2' of git://github.com/szager/buildbot:
  Don't call _ref_key from put() -- matches previous behavior.
  No tab characters in docs.
  Moved pydoc stuff into the manual, added comments for non-public methods.
  Add a syncronous LRU cache implementation, and use it for the build cache in buildbot.status.builder.BuilderStatus.
add test from comments on pull request 367
fix pyflakes
Merge branch 'synclru'

* synclru:
  fix pyflakes
  add test from comments on pull request 367
Disable checkpoint_fullfsync on all SQLite connections.

The checkpoint_fullfsync pragma is enabled by default on the version of SQLite that
ships with OS X Lion and newer. This setting enables use of the F_FULLSYNC fcntl rather
than fsync when transactions are moved from the WAL back in to the database proper. The
fcntl waits until the disk drive reports that all buffered data has been written to
permanent storage, in constrast to fsync which merely waits until the data has reached
the disk controller. F_FULLSYNC is more robust in the face of catastrophic system failure
but incurs a substantial performance hit for being so.

This change reduces the time it takes to run the buildbot.test.integration.test_upgrade
suite of tests on one machine from over 27 seconds to under 7 seconds.

Fixes #2256.
Merge branch 'bug-2256-sqlite-checkpoint-fullfsync' of git://github.com/bdash/buildbot

* 'bug-2256-sqlite-checkpoint-fullfsync' of git://github.com/bdash/buildbot:
  Disable checkpoint_fullfsync on all SQLite connections.
Fix tests after 82430c when using older versions SQLAlchemy.

Use an object that implements the PoolListener interface to listen
for the connect event when using SQLAlchemy prior to 0.7.

This also moves the registration of the event listener ahead of the
changing of the journal mode to ensure that the database connection
that SQLAlchemy spins up when executing the journal mode pragma also
triggers the event listener, and doesn't miss out on having
checkpoint_fullfsync disabled.
Merge branch 'fix-bug-2256-fallout' of git://github.com/bdash/buildbot

* 'fix-bug-2256-fallout' of git://github.com/bdash/buildbot:
  Fix tests after 82430c when using older versions SQLAlchemy.
Don't try to send email, if there are no interesting builds.

Fixes #2236.