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