VersionTokens are now cloneable
A VersionToken can now be updated to another one
Clean up
More clean up
Fix - version comparison for update were wrong
New transact implementation (in testing)

- IResource.Rollback changed to IResource.Release
- Transactions must release resources explicitly
- Each LockNeedleSlot keeps it's own version token

Currently on testing
TODO: nesting transacts may cause problems, more testing needed
TODO: can multiple LockNeedleContext coexists?
TODO: disposing a Transact.Needle should call Release