Queue all write transactions and execute 1 by 1

IndexedDB can’t handle the large number of parallel writes we throw at
it.  This de-parallelizes all writes into an operation queue that self
executes the next operation when one is finished.

TODO: specs
transaction queues for IDB per storeName
reuse transactions while flushing queues
Merge pull request #18 from wunderlist/idb-transaction-queue

Queue all IDB write transactions and execute per store reusing open transactions