Major updates to make IHashFunction immutable.

Convert concrete tests to be JSON driven.
Update code analysis policy and conform to the stricter rules.
Remove unnecessary tests.