Change numeric data types to use SORTED_NUMERIC docvalues type

Change numeric data types to use SORTED_NUMERIC docvalues type instead of a custom encoding in BINARY.

In low level benchmarks this is 2x to 5x faster: its also optimized for the common case where fields actually only contain at most one value for each document.

Additionally SORTED_NUMERIC doesn't lose values if they appear more than once, so mathematical computations such as averages are correct.

I'm not sure: we should benchmark that it actually would matter, because it would introduce some complexity. The lucene comparators don't even do this, they do the same thing being done here at the moment for float and double types.