The HMAC Ada Library

This follows from the HMAC Ada library experiment; the final version of this library is much smaller
and less modular than I'd first expected.  The design influence this library posed to my SHA library
made much of the planned HMAC library superfluous and resulted in this take-it-or-leave-it approach.

Instantiating the generic package is unpleasant to see, but I suppose rather necessary.  I refuse to
expose in my SHA package the internal type of the length used in the final block, but this is needed
to optimize the HMAC calculation, thus the instantiator must know and give this type to the package.

An issue with my design is requiring the special interface to the Hash subprogram that overrides the
initial Status and length used in the final block.  This interface was chosen because it's obviously
useful for other purposes, and the normal Hash function can be implemented in terms of it trivially.
However, this is an unusual interface, not that compatibility with any library not of my design be a
concern, and it needs a synthetic implementation thereof for a substantially different hash checksum
algorithm such as SHA-3, which uses no such length in its design.  Regardless, these concerns should
matter little, and designs such as SHA-3 avoid the need for HMAC entirely anyway; this library is so
small and does so little that it can be discarded safely if it ever tries to outlive its usefulness.