Support encrypted transport, properly handle multiple recipients.

1) Add encryption support for the transport layer.  This obscures
   metadata from the push messaging provider.

2) Better support the direction multiple destination messages is
   headed (one unique message per recipient).
Make encoding/decoding more explicit.
Merge pull request #3 from WhisperSystems/push-library

Push library