Hashing: Fleshing out initial port.

See issue #4 for details.
Hashing: Implement GetNode(key) & GetNodes(key).

It's not terribly efficient, but it does seem to work OK.
Hashing: Fix corner-case in hashing algo.
Hashing: Fix & test AddNode() and RemoveNode().