separate implementations of  incremental index

separate out impl of IncrementalIndex - 
1) OnheapIncrementalIndex - on heap version of incrementalIndex (used by default)
2) OffheapIncrementalIndex - off heap version, uses direct memory for aggregators and storing dimensions.
If I understand this correctly we use tuningConfig.getBufferSize() twice.
We allocate `bufferSize` memory for buffer for aggregators, but then we also pass the same value as `sizeLimit`
If we pass the same value for sizeLimit and for the BufferPool size, then getCurrentSize() > sizeLimit will always be true as soon as we write anything to MapDb, resulting in indices that fill up right away.