master Implemented signed messages with verify

Messages are now always signed by the sender and verified
by the recipient via the sender's public key which is known
to the system.

I may add support for falling back to simply decrypting a
message in the case where verifying the message fails, and
showing an error to the user suggesting that the message
could be decrypted, but the identity of the sender could
not be verified.