refactor hash/HMAC functionality into different protocols.
add SipHash (request #3).
added tests for SipHash.