[WIP] Fix ht interface

Resubmit from #105 onto master
The underlying hash function may still be MD5 or SHA, but it is expected to be applied to only a part of the object and that the user will do so in the function he or she provides.