Tunnel community

DO NOT MERGE
I would rename this class to TunnelCrypto + create a NoTunnelCrypto which returns sane values for generate_diffie_secret etc without doing crypto.