Horrible horrible hack to work around bad sqlite locking behaviour.

Fixes #105, I think.
Get a write lock at the beginning of the promotion process.

I believe this might fix #100 now that we have the busy timeout set as
per 7d5f342. If a promotion is in process, the RESERVED lock will
allow reads to go through but cause writes to block until the
transaction is complete according to http://www.sqlite.org/lockingv3.html
Release 0.12.11.