Add HashRepresentation

Make it possible to create objects that seem like real objects, but in fact only are a hash representation of the objects. Currently BlockHash and TransactionHash are supported. The == operator and the hashCode getter are implemented to only compare the hash so that a HashRepresentation appears equal to a real object.

I add this as a pull request because I'm not very sure myself if this is a good idea. Feedback wanted.