Class for tracking categorical (factor) columns.
Basically a wrapper around non blocking hash map.
In the first pass, we just collect set of unique strings per column
(if there are less than MAX_CATEGORICAL_COUNT unique elements).
After pass1, the keys are sorted and indexed alphabetically.
In the second pass, map is used only for lookup and never updated.
Categorical objects are shared among threads on the local nodes!