Implement handshake protocol
This branch adds a ContactExchangeManager method for exchanging identities with a pending contact, and a new HandshakeManager that performs a handshake to establish an ephemeral shared secret authenticated with both parties' long-term handshake key pairs.
Part of #1232 (closed).
Edited by Torsten Grote