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.