Implementation of HMAC-512-256 and HMAC-256

These are secret-key authenticators for data.  The provided
authenticator can be used to check for tampering, and timing independent
verification methods are provided.