Public key verification

This is not ready to merge - submitting PR for initial code review.

This still needs:

* an example showing how to use `peer.trust()` as a developer
* fix the encryptAndSign tests I knocked over
* more tests for what I added, like `crypton.fingerprint`
* validation of one's own public key