removing console.log in db.js
Finishing the breadth of syncing/local db changes

- Models now save to IDB, marking their last_mod time and local_change=1
- Models sync anything in IDB that has last_mod > last_sync time to
  in-mem data.
- Anything with local_change=1 is synced out to the API, and the return
  data is saved to IDB w/ last_mod set
- Every 10s, POST /sync is called, and any returned items are saved to
  IDB.
- Deleted items are marked as deleted=1, which the local sync
  understands as "delete me" and does so. Items with deleted=1 are kept
  around until the remote sync runs, making sure they're all safely
  deleted on the API, then all deleted=1 records with a last_mod > 10s
  ago are removed completely. the 10s lag time allows other pieces of
  the addon to sync the deleted items to in-mem.

Other updates:
- there is now a standard SyncCollection that handles about 90% of the
  syncing process (both local and remote). it encourages implementation
  of process_local_sync, which is almost exactly the same as the
  respective pieces of Profile.process_sync.
- Protected models now have a "raw_data" mode which when set disables
  all encryption/decryption. this is great for syncing, where access to
  the in-mem models (and their keys) is discouraged, and we never need
  to decrypt the data anyway since all data flowing between IDB and the
  API is already encrypted. this lets us extend the functions of the
  usual models without worrying about (de)serialization.
- trackers are now called in the order added (bugfix)