(#1384) - Fix db.sync cancel function
(#1172) fix total_rows/migration for websql/idb

This commit adds several major fixes to the WebSQL
and IDB adapters:

1) total_rows now correctly returns the number of
undeleted documents, ala Couch.

2) keys/startkey/endkey/key/limit/offset logic
is now largely handled in the database for performance
(esp. WebSQL).

3) Various fixes to the above to match Couch behavior.

4) Migration logic to ensure that even if the database
schema changes, existing users can be migrated
to the new schema. Migrations have unit tests.