Added Guard, ReentryGuard and Needles
Do not catch (Pokémon Natural Reserve)

Now ProxyObservable doesn't catch or handle exception in any way...
I have considered to use AggregateException and to automatically
unsubscribe observers that throw, I have decided it to be not worth it.
Replaced List with HashSet

The use of HashSet will give thread safety by default, this is important
because multiple threads may attempt to subscribe or unsubscribe at the
same time.
Fused Box into ReadOnlyNeedle

- ReadOnlyNeedle is now a class
- IsAlive is hidden, it is always true
- Added cast operators taken from Box
- Extended comparison