Persistent hash work

I have got HashCollisionNodes working and some helper functions for testing this kind of thing.

Still to be done is all the stuff relating to disjoining which I hope to have in later today.