Sign then Encrypt

Just as a heads up this is wacky as shit because of some weird merging and rebasing…I'm still looking at it but if you see anything odd please let me know.
`super(CryptoPeerListener, self).__init__(ip, port, ctx, guid, data_cb)`