Renamed Enqueue to Add and TryDequeue to TryTake

For consistency. Really, I look for Add by instinct.
ReentryGuard now uses QueueBucket (experimental)
InvokeConstructor behavior change

TypeHelper.ConstructorHelper.InvokeConstructor now throws an
InvalidOperationException when trying to call an non existing
constructor. It used to throw a NullReferenceException due to an
overlook. I have seen this happen in debug, I'll track the cause.
Back to ExtendedQueue

Changing to QueueBucket was a bad idea, as QueueBucket needs ArrayPool
and ArrayPool needs ReentryGuard... if ReentryGuard needs QueueBucket it
causes a dependency cycle that translate to an stack overflow in
runtime.
Two defects fixed

1: "==" was used instead of "!=".
2: passed wrong type parameters to constructor.

I feel silly... why I didn't notice that before? Because of this error
NeedleHelper was at fault. And in consequence it also affected Transact.
Small improvement via double check "pattern"
Small ... something

I'll check more often, probably causing it to take more time, although
this way it probably makes more sense.

I want to look less of the ExecutePending loop, because I have other
problems to debug, and having that running in the background is making
me miss the main process.
Better hashCode for WeakDelegateNeedle

There has been some collisions that cause HashBucket to grow when
shouldn't. This is part of the problem. Although aparently this hashcode
is not the one being used...
Style fix
Whitespace clean up
DelegateEqualityComparer

DelegateEqualityComparer renamed to DelegateDeepEqualityComparer (this
compares method bodies)
Added new DelegateEqualityComaprer that is more shallow.
DelegateEqualityComaprer hashcode should match the hashcode from
WeakDelegateNeedle for the same delegate.
Added DelegateEqualityComparer

EqualityComparerHelper will now use DelegateEqualityComparer to compare
delegates. This needs testing.
Weak*Bucket will now use EqualityComparerHelper

The cases of ConversionEqualityComparer are now going to be constructed
with EqualityComparerHelper

Note: WeakHashBucket will continue to use EqualityComparer for Contains
Fixed DelegateEqualityComparer use

It needed testing.

Though there are still other problems.
LazyNeedle<T> is now an IPromise<T>

Note: Since FutureNeedle<T> inherits from LazyNeedle<T> then
FutureNeedle<T> is also an IPromise<T>
Changed from NotNull to StructNeedle

StructNeedle is lighter than NotNull.
Added TODOs
Fixed null handling in Needle to value conversion

Also small clean up
Fixes for CharyAdd implemenation

Thank this change the transactions are working "better".
Improved null handling in GetHashCode

This method sometimes gets a null from a dead needle (i.e a weak
delegate needle where the target has been claim by the garbage
collector).