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

We should say what we're using the PGP public key for either here or somewhere else on the signup form.