Dispose instead of rollback
Improvements for ThreadingHelper

Now it will be possible to distinguish the case in which the operation
has been canceled for the overloads of SpinWaitExchange and
SpinWaitExchangeRelative.
Update for the SharedTemplates

The new templates take advantage of the recent changes of
ThreadingHelper
Updated disposables

Taking advantage of recent changes in ThreadingHelper
This classes are no longer using the SharedTemplates, thus they are
updated independently.
Fix for double freed

Why was this being freed twice?
Fixed implementation

Added missing "else"s.
Improvement for finalizers
Now needles are disposed only when not added

Needles were being disposed when they shouldn't.
Fix for transact

When reading a second time a value it must take it from the read log
instead of retrieving it again.

Note: there is a problem with the implementation of CharyAdd
CharyAdd now allows to retrieve old key

This allows to acurratetly indentify when to dispose the needle and when
not to.

After this change transactions are working correctly.

Testing eventually run into an OutOfMemoryException... this is because
too many handlers are alive in GCMonitor.