Add MACContext and switch HMAC and CMAC to use it.

Fixes #1319.

Thoughts?
Is this the new property you mentioned? WHat's it for?