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.
Fix some bugs with PKWM padding and attachment detection.
Let's have JobManager only deal with checked exceptions.

Also, switch to Builder for JobManager construction.
Rename library to libtextsecure
Modernize libtextsecure layout
Refactor out old classes.
Move dependency up to parent.
Move DirectoryUtil up to parent.
Move ListenableFutureTask up to parent.
Split out Util functions.
Put everything under either internal or api.
Fix regressions for registration.
Fix delivery receipts in group messages.

Fixes #2056
Fixes #2067
Fixes #2087
Correctly handle PKWM via SMS.
Correctly process push messages with identity key conflicts.