wordsmithing
Minor cleanups.
Rename exceptions.
Implement backed authentication credential store.
hasher_from_string: Fix exception formatting bug.
Store H2 hashes in authentication backend credential store.

Move H2 hashes and it's parameters out of the general user data store
accessible to the frontends. Solar Designer pointed out that it was an
unjustifiable risk to have them there, even though they are useless
thanks to the YubiHSM local parameter.
PEP-8 some class names
authenticate: Load temp-key outside loop.
Implement OATH credentials.

Change OATH validation to look for credentials in the private credential
store now available to the authentication backends.
Delay computation of local_salt as long as possible.

Solar Designer advised to do as much work as possible before computing
the local parameter with the YubiHSM, in order to slow down an intruder
on the backends as much as possible if they tried to use the access to
pre-computing local parameter values for credentials for later offline
attacks.
Document changes to the hashing scheme based on Solar Designer's comments.

The main change is from :

  bcrypt -> YHSM -> PBKDF2

to

  bcrypt -> PBKDF2 -> YHSM -> PBKDF2(iter=1)

Also, the credentials are not stored in the userdb database accessible to
the frontends but instead in a private "credential store" only available
to the authentication backends.

The frontends keep the bcrypt salt away from the authentication backends,
to further isolate which function (server or servers) can do what. This
change limits an intruder on the backends from offline attacking the bcrypt
hashes seen on the backends, since the attacker does not know the salt used
to compute them.