Improved the handling of target category values

If the "value" attribute of the OutputField element is missing, then the
predicted category value becomes the target category value.
Improved support for 'predictedDisplayValue' result feature
Convenience method for obtaining target category values
Improved variable names
Ensured the immutability of cached data structures

Currently, the immutability is guaranteed at the top level, but not at
nested levels. Consider, for example, a List<Set<E>> data structure. The
List object is immutable, but its element Set objects may be mutable.
Improved code coverage