Adding dictionary encoding for non string types.. #99

Basic implementation of dictionary encoding for long,double,int,float..

About the changes:

- used fastutils as suggested
- single DictionaryValuesWriter that uses plain encoding for dictionary data
- single Dictionary type to decode from plain

The IntList could be replaced with the fastutils primitive capable int list for consistency.. 
The fastutils version does not eliminate buffer resizing, but this should be a fairly small impact. 
I have left this as is for now but can add another commit to migrate, WDYT?