Don't copy slice when building blocks
Merge ChannelIndex into PagesIndex

Switch PageIndex to use custom managed RandomAccessBlocks
Change PageIndex to keep channels in separate lists
Window operator minor cleanup for readability
Remove unused TupleInfo methods
Add FixedWidthBlock

Remove type long, double and boolean blocks
Add VariableWidthBlock

Remove generic UncompressedBlock
Remove type specific slice block
Rewrite DictionaryEncodedBlock to use a RandomAccessBlock for the dictionary
Change block encoders to use blocks instead of Iterable<Tuple>
Replace Tuple with single valued random access blocks
Use TypeInfo to hash partition pages instead of hashing bytes directly
Change BlockBuilder to use TypeInfo instead of TupleInfo
Make BlockBuilder implement RandomAccessBlock
Rewrite ChannelSet to use BlockBuilder instead of manual slice building
Rewrite GroupByHash to use BlockBuilder instead of manual slice building
Remove final direct slice based equals and hashCode
Rewrite BlockEncoding to propery nest and add a manager so additional encodings can be added over time
Move BlockEncoding class to sit next to Block implementations
Remove raw access methods from Block and BlockCursor
Remove data manipulation methods from TupleInfo