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.
Merge branch 'master' of https://github.com/buildbot/buildbot into multirepo3
Don't try to send email, if there are no interesting builds.

Fixes #2236.
Merge branch 'mailnotifier' into buildbot-0.8.6
Merge branch 'buildbot-0.8.6'
Fix TestMailNotifier.test_buildsetFinished_doesnt_send_email for changes in trunk.

MailNotifier was fixed to use self.master.db rather than self.parent.db. Fix the new
test to respect that.
Get rid of debugging code.
Fix handling of positional aruguments, and add tests for it.

Now we only try to parse lookup keys, if we aren't doing positional substitution.
Before, we were unconditionally parsing, which failed in the case of positional
arguments.
Move tests of deferred renderables to kw tests.

Properties should be jsonable, so there shouldn't be renderablw
instances there. We don't test to ensure this, but we should be using
them in tests.
Use inlineCallbacks in status/tinderbox.

This code was written before we dropped support for python 2.4. Clean it
up before merging.
Document the fact that IRenderable.getRenderingFor can now return deferreds.

This should really be documented in the manual, but IRenderable isn't yet
documented there.