Hashing API

Here is the Hashing API I have written as part of my GSoC project. PreferredAlgorithms includes all my benchmarks except for Signatures as that requires my SigType enum. Benchmarks are based off of what I found that was already in the codebase. 
Logging to `System.out` and `Logger.minor` simultaneously: pick *one*. Preferably the `Logger` one: IMHO benchmark results don't belong in the wrapper log.