BigInteger Template fix

- Do not require a compiled Theraot.Core.dll
Fix for NoTrackingThreadLocal initialization
Marked NumericHelper with DebbuggerStepThrough

Avoiding to step into NumericHelper during debug.
Fixed methods that return Predicate

GetFallacyPredicate and GetTautologyPredicate should not take
parameters.
Improved RemoveWhereEnumerable

RemoveWhereEnumerable now uses ProgressiveCollection intead of ToList -
this means that there is no need to walk the source collection entirely
to start removing items.
Tweaking GCMonitor

Increased the maxprobing for the delegate set that holds the Colleceted
event handlers. This mitigates the growth of the mentioned delegate set,
reducing memory usage.
Reimplanted ArrayPool

The new implementation of ArrayPool prevents creating new works for each
donated array, this way the code can return control faster and generates
less garbage.

If the recycler work was not able to get to a donated array before it is
taken, the new owner automatically performs the corresponding cleaning.

The recycler work happens in the default working context.