Improved Extendability

Big rewrite of the entire code base. Fewer classes.
* Removed direct table access on Transaction objects (now need to go via
trans.table() or use the arguments passed to your transaction scope
function)
* Removed TransactionFactory, MultieqTransactionFactory,
FinishableTransactionFactory, WriteableTransaction, ObjectMappableTable
* Extended Transaction class to include all functionality from the
TransactionFactory classes above.
* Instead of TransactionFactory, use a transactionPromiseFactory
function returning a Promise with a callback of (resolve, reject, trans)
where trans is the transaction object.
* Recursive read/write lock support on all db operations. Currently only
used in WriteableCollection.modify()/delete() but will be very helpful
for Dexie extensions in order to implement new write operations based on
sequences of Dexie operations and lock entire sequence using recursive
lock.
* Prepared for schema syntax extendability and possibility to change how
tables and transactions are created.
* Better code completion now also when not using defineClass() or
mapToClass().