Many Lookup optimization

Where there are many clashes, the cost of adding new elements
to the HT degrades significantly. As clashes fill sequential
blocks of the HT, they cause collisions and scans for new
empty slots.
This optimization, switched on for MANY LOKUP only, where it
is expected that there'll be a increase in collissions, reserves
the end of the HT for collissions and tracks the ranges used
by consequetive collisions.

This change, tracks the consumed HT range when there's clash.

Signed-off-by: Jake Smith <jake.smith@lexisnexis.com>