Fix some comments.
Add dependencies for leap.common and pysqlcipher.
Merge branch 'feature/pysqlcipher-dependency' into develop
Add Twisted as dependency.
Add a LOT of docstrings.
Eliminate the use of super() in main code.

Tests inherited from u1db still use super, but that can be changed in the
future.
Add check for presence of a shared db.
Use BaseConfig for configuring Soledad.
Add events signaling.
Add doc for soledad events.
Remove GPG asymmetric key stuff.

Everything related to asymmetric encryting will be handled by Key Manager.
Fix events signaling.
Add 'get_all_docs()'.
Add create_doc_from_json() to API.
Separate crypto-related stuff from Soledad class.

This creates a SoledadCrypto object that should encapsulate everything related
to crypto in Soledad.

Also, replace hmac for sha256 when creating hashes.
Add encryption_scheme property to LeapDocument.
Completelly switch to Key Manager for crypto.

This removes all GPG wrapper that was left and includes Key Manager to take
care of all crypto stuff.
Remove base64 encoding of hashes.
Add indexing methods to Soledad.
Fix symmetric encryption when syncing.

Also does:

  * Remove all crypto methods from LeapDocument.
  * Encode 'encryption_scheme' inside the document JSON.
  * Add functions for encrypting and decrypting.
  * Fix LeapSyncTarget so its connection actually returns a LeapSyncTarget.
  * Fix symmetric encryption when syncing:
    - don't try to encrypt tombstone documents.
  * Fix symmetric decryption when syncing:
    - Only try do decrypt if the incoming document has an '_encryption_scheme'
      entry with value equal to EncryptionSchemes.PUBKEY.
  * Fix doc skipping for non-syncable docs.
  * Fix tests that compared raw content with encrypted content.