Enhancement to the field data cache:

* introduced byte and short based ordinals which can be used if the number of unique values is less than Byte.MAX_VALUE and Short.MAX_VALUE respectively.
* in some cases even if we're dealing with single valued fields, if there are limited enough number of unique values, it's still worth using ordinals