Short circuit self-send.

// FREEBIE
revert content-type generics

// FREEBIE
Merge pull request #2028 from mcginty/revert-generic-contenttype

revert content-type generics
Fix bug caused by 1mod8 compatibility issue.

In the switch from v3, we bind identities in the message MAC
instead of doing the 1mod8 trick.  Since identity keys were
never set as 1mod8, it seemed like we could just remove it.

However, PreKeys are durable.  If an old client upgrades to v3,
it has a bunch of keys that *were* set to 1mod8 floating around.
The Curve25519 donna code re-sets the private key bits on every
operation, which results in a different key, and breaks the output
of an agreement.

So now we don't intentionally generate keys with 1mod8, but we
have to remove the donna code to honor existing 1mod8 keys for
the rest of time.  Trevor is squarely to blame.

// FREEBIE
Test case and fix for deferred jobs.

Closes #2033
Updated language translations.

// FREEBIE
Bump version to 2.2.0

// FREEBIE
in-app image media preview

// FREEBIE
refactor ListenableFutureTask and make saves async

// FREEBIE
replace ABS with AppCompat

// FREEBIE
enable proguard

// FREEBIE
shorten blocks of text

// FREEBIE
padding workaround for bug in appcompat-v7 21.0.0

bug: https://code.google.com/p/android/issues/detail?id=77982

// FREEBIE
clear pending slides when attachment reselected

Fixes #2012

// FREEBIE
Beginning of libtextsecure refactor.

1) Break out appropriate components.

2) Switch the incoming pipeline from SendReceiveService to
   the JobManager.
Move API around.
Transition the outbound pipeline to JobManager jobs.
Move API around a little, eliminate TransportDetails interface.
Add account management interface to libtextsecure api
Add support for dependency injection, and accompanying tests.