Subtile extentions to API

1) Now possible to return a value or Promise from a db.transaction()
scope and the entire transaction will resolve with that value or
Promise. Needs to be documented.
2) Now possible to return false from a WriteableCollection.modify()
callback to prohibit a modification request to occur.
3) WriteableTable.update() and WriteableCollection.modify() will not
modify objects where the result of the modification wouldnt change a
value. For example, the following line:
db.friends.toCollection().modify({isCloseFriend: 'yes'}); would only
make modification on non-close friends. It will also resolve with the
number of actually modified objects so that would not be the same as the
number of total objects in db.friends table.

And a bugfix: Code completion in VS2012. startsWith(),
startsWithIgnoreCase() and equalsIgnoreCase() were expecting Collection
and not WriteableCollection (writing ".modify" made the IDE believe the
methods didnt exist).
Dexie.Syncable rewritten and retested

In the last work of developing Dexie.Syncable framework. Not all methods
are on place but the main flow is there. Unit test succeeded again after
rewriting the API.