pgp key management and email encryption fixes #38

Backend:
* [x] allow users to enter a pgp key when they sign up
* [x] allow users to add and remove their pgp keys after they are logged in
* [x] respect two factor auth rules
* [x] encrypt email sent to users with pgp keys

Frontend:
* [x] allow users to enter a pgp key when they sign up
* [x] allow users to add and remove their pgp keys after they are logged in
* [x] respect two factor auth rules

I think most people who know what a PGP public key is would guess what it's used for, but I'm open to suggestions as to where to put that description.