Add basic public key add/delete

This adds a very basic functionality for users to add/delete public
keys. It provides pubkey verification so we don't allow adding keys that
aren't actually valid keys.

You are allowed to add a public key for your account, and if you're a
user_admin, you can add/delete them on any account. Anybody can view
public keys.
I know I did this somewhere else but now that I think about it I'd prefer we use the utcnow function we wrote for these if it works, though I also imagine these records to be immutable so it's likely superfluous. My concern is just that we assume the data is always stored UTC and that function could potentially just use the TZ from the database server.