Added RemoveWhere in SetBucket
Updated WeakSetBucket
Updated WeakDelegateSet
Improvements...

HashBucket:
Renamed TryAdd to CharyAdd
Added TryAdd (returns bool)
Added RemoveWhereKey
Addded WeakHashBucket
Put on pair

Improved: WeakHashBucket, HashBucket and WeakSetBucket
Transact now uses WeakHashBucket
Fixes...

Added Contains(KeyValuePair<TKey, TValue>)

But I've been unable to find a safe way to implement
Remove(KeyValuePair<TKey, TValue>), so WeakHashBucket cannot implement
ICollection<KeyValuePair<TKey, TValue>>
Removed not used methods

Since WeakHashBucket cannot implement ICollection<KeyValuePair<TKey,
TValue>> then the partial implementations must be removed.
Added AddRange in WeakSetBucket
Added AddRange in WeakHashBucket (and cleanup)
Normalized the wording of DebuggerNonUserCode

DebuggerNonUserCode will always appear as
[global::System.Diagnostics.DebuggerNonUserCode]
whitespace
Defect Fixed.

Some constructors did not init the fields. This has been fixed.
Added PromiseNeedle
Improvements for PromiseNeedle
ReentryGuard now uses Promise
Changed ArrayPool to use ReentryGuard and Promise
Rece condition improvement

Promises are queued before attempting to execute

Note: I need to chain promises, first Work must return Promises
Renamed IsCached to IsLoaded