Create TSStorageMasterKey

This gives us one global storage key derived from the user’s password
that we can use to encrypt files, DBs, etc.
sligthly better error handling
Plug TSStorageMasterKey into TSEncryptedDatabase

and fix unit tests
Create a generic encrypted DB class
Create TSUserKeysDatabase to store user keys
Plug TSUserKeysDatabase into the code; it builds...
Add missing erase method
working towards threads
added setthread method to compose view controller
Add unit tests for TSUserKeysDatabase
Fix issues found by unit tests
Fix key registration with TSEcKeyPair
Plug TSMessagesDatabase into the code base
Remove ECKeyPair
Remove TSEncryptedDatabase+Private.h
Add TSStorageMasterKeyTests unit tests and fix bugs
TSEncryptedDatabase2 unit tests
Don't forget to create the messages DB
Merge remote-tracking branch 'upstream/master' into keymanager

Conflicts:
	TextSecureiOS.xcodeproj/project.pbxproj
	TextSecureiOS/Model/TSEncryptedDatabase.h
	TextSecureiOS/Model/TSEncryptedDatabase.m

TextSecureiOS/ViewControllers/Conversations/ComposeMessageViewController
.m
	TextSecureiOS/ViewControllers/TextSecureViewController.m
fixed bug where TSParticipants was NSArray (abstract class is pain to subclass, just using composition)