Added DBStorage Module

This diff kind of serves two purposes.  First, the DB module is
bloated (and going to get more bloated), so I need to start moving the
storage and crypto functions out into separate modules.  Second, I
needed to properly implement storage that could switch back and forth
between local and sync storage, and break up long ciphertext strings
to avoid hitting the per-item quota when using sync storage (see:
http://developer.chrome.com/extensions/storage.html#property-sync).
Now on local storage we just store the ciphertext under key 0, and
with sync storage we break it up into successive integer keys, encoded
as base 36 to cut down the space spent on keys a little bit.
Removed Storage Functionality from DB Module

This diff removes the storage manipulation functions in the DB module,
and switches it to using the DBStorage module that I introduced in the
last diff.
Freeze DBStorage Module

Minor fix, I just forgot to freeze the DBStorage object before
returning it from its anonymous function wrapper.