Added HMACKeyVersion, HMACKeyVersionTest, SigningException, HashKeyVersion

Added:
HMACKeyVersion - class representing HMAC
HMACKeyVersionTest - JUnit tests for HMACKeyVersion
SigningException - custom signing exception
HashKeyVersion - abstract class extended by HMACKeyVersion
OK I'll change this. I had it in because I was under the impression Shawn wanted the raw bytes saving with each key version.