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
Rename Capsule.cs to ReadOnlyDisposableNeedle.cs
Added experimental transaction needles
Added stubs for ObservableCollection and NotNull
Removed Capsule generated code
Rename Capsule.disposable.tt to ReadOnlyDisposableNeedle.disposable.tt
Renamed class Capsule to ReadOnlyDisposableNeedle

- Updated Project
- Generated new code from template
Put on pair

ReadOnlyNeedle and ReadOnlyDisposableNeedle now have similar
functionality
Hidden IsAlive and Value

- IsAlive is always flase
- Value always throws an exception
Put on Pair

- The cast to T has been changed to an explicit operator because it can
throw
- Extended Equals
Now Needle has similar functionality to ReadOnlyNeedle
Put on Pair

Needle and WeakNeedle now have similar functionality
Removed Unnecessary calls to DisposedConditional
Removed "ConversionNeedle"

Better mechanisms for this will be added in the future
Improved readability
Removed "Check*" functions

They should not be here
Added TryGetCreate to ConstructorHeper
Added deferred needle creators

Added DeferredNeedleCreator and DeferredReadOnlyNeedleCreator