Generate, upload and store ECDH public keys

Adds a service to generate ECDH public keys and upload them to the
server.  Also syncs with the server once a week to delete any keys that
the server no longer has.

Change-Id: I5c8bd91b7eea2213cf7fcf381c1edbe200d1712e
Use ECDH for key exchange instead of RSA

When we get a message, derive the AES symmetric key from our private key
and the public key that is provided in the message.  All further secure
messages that are sent are encrypted with the derived symmetric key.

Change-Id: I433bbe4772137eeb445deaec703285a5d6b6da14
Remove dependency on scprov-jdk15on

By building the ECCurve ourselves, we can remove the dependency on
scprov-jdk15on.  This change also depends on sc-light-jdk15on from
spongycastle externals.

Change-Id: I9006de9233d1e5e4005a74c5dd4aeea318e84ec8