Use ECDH instead of RSA for key exchange

This is a combination of 3 commits.

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.

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.

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: I502fd8ca24874570b4753e30d1e2d1b811100607