Port of Threefish implementation from bc-java.
All block sizes (256/5124/1024) and unit tests.
Port SkeinDigest and SkeinMac from bc-java.
Skein digest and Mac in 256/512/1024 bit state sizes (and arbitrary byte level output size), with unit tests.
Port Memoable digest support from bc-java.
Port SM3 digest implementation and tests from bc-java.
Refactor digest tests to subclass DigestTest, the same as bc-java.
Port HMac optimisation using Memoable digests from bc-java.