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.
Merge pull request #290 from tomprince/prop-defer

Allow renderables to return deferreds
Fix pyflakes errors.
Add some tests for the renderable adapters.
Change direct tests of PropertyMap to use WithProperties instead.

PropertyMap is an implementation detail of WithProperties, so test
the user interface directly, instead of the implementation detail.
Don't store a PropertyMap on Properties.

PropertyMap is an implementation detail of WithProperties, so the only
thing that should need to know about it is WithProperties.
Properly fix import loop between buildbot.config and buildbot.process.properties.

config is more fundamental that properties, so limit the scope of imports there.