Implementing new serialization format

issue #52, in the flesh.

tcrypt now returns raw encryptions strings instead of base64 encoding
everything. base64 encoding is the responsibility of the one calling
tcrypt.

the format encodes the version, the description of the payload
(aes/twofish, CBC, padding, etc), the binary IV, and the payload itself.
it allows for variable length payload description, making it
forward-expandable. it is self-describing, so tcrypt will always be able
to decrypt any message in the new format, no matter what cipher or
padding mode etc is used, as long as the key is correct, and with no
extra metadata. just the payload itself.

this format is MUCH more compact, and allows for binary storage.

note that it's NOT implemented anywhere in the app.
tcrypt: adding back in old format serializer (not just deserializer anymore), and allowing to specy what serialization version to use when calling tcryp.encrypt (via options). version "0" is original Turtl format.
user model: get_auth now forced old-version serialization in tcrypt, meaning logins are no longer broken =]
converting Protected (and by proxy, ProtectedShared) to handle new serialization format in tcrypt, whilst being mindful of detecting old format. this is important because Protected is now responsible for base64 encoding. tcrypt no longer does this. working beautifully so far. all old data will be converted as its saved, all new data will just use the new format. old data format can be supported as long as needed (probably forever). its a handful of lines of code so might as well.
a few more crypto tweaks
tcrypt.key can now use a custom hasher
adding HMAC authentication, as required by updates in issue #52. moving description parsing OUTSIDE of (de)serialization functions (makes sense), and adding/implementing defaults for cipher, block mode, padding, and KDF packages (0 index is no longer default). all encryption/decryption working beautifully, including old serialization function (albeit everything is a bit slower). also, added/implemented get_hasher helper.
disable CFB for now
HMAC auth hash now includes description length in hashed value (which was previously vulnerable to tampering)...bumping serialization version. also, adding/implementing some Exceptions to make error handling more precise, if needed
catching more tcrypt exceptions in Protected
on bookmark save, clear out localstorage tracker for bookmarker
no longer persisting "Error connecting with server" messages. fixes issue #62
sending "LOGOUT" port on user logout (in support of issue #47)
implementing <code> css per issue #28