Add datastructure class RandomGrabHashSet


- I had written this for WOT originally. It is very generic so toad asked me to add it to Fred.
- Notice that it is not duplication of RandomGrabArray: RandomGrabArray is very tightly wired in to non-generic Fred code. RandomGrabHashSet is a naked datastructure which doesn't depend on Fred at all.

@bertm : @Bombe: As infinity0 said, certain parts of the test are randomized because randomized testing is better for testing certain stuff (testIndexConsistencyRandomized). This does not mean that the test only does random stuff. Of course it also tests human-determinable special values.
Randomized testing with a fixed seed won't make sense, so it randomly generates it. The random is seeded with a value which it has generated itself so we can log the seed to stdout. Logging the seed allows the developer to repeat a failed randomized test. Notice that the default constructor Random() WILL pick a random seed, so we can use the Random object afterwards to generate a random seed which we log. 
As the randomized testing code is already present, I don't see a reason to remove it. The test has enough human-picked special cases already.