Refactoring step: Comparer no longer knows about the implementation of the index

Flattened the usage of the index to allow it to map to an interface.
This means that we can import the comparer in the index, if we want, to do benchmarks.
It also means we can use a mock index to benchmark/test the comparer.
Adding benchmarks for various data structures for the index.
The best one is 50ns faster, which makes a difference at this sort of scale.
Fixing a regression in the index, trying out an improvement to make it faster