Added WeakCancellableEvent
Renamed HashSetTests to HashSetTest

Naming convention: concatenate "Test" to the name of the class / file
being tested.
Improved LazyNeedle and added tests for it.

Let the tests document the behaviour.
LazyNeedle: Wait from valuefactory will throw