Add GHASH support

This adds support for the GHASH function, as used by GCM. My ultimate goal is to implement support for GCM in rust-crypto.
This seemed like a reasonable start since GHASH can also be used as a MAC on its own.
Since this is already a significant amount of code I'd like to get it reviwed before continuing.