Adapted models to deal with different sets of categoricals in training and tst set.

Model now has method adapt(ValueArray) and adapt(String[]) which produces model adapted for different dataset. Default implementations provided but the Model.class which simply maps the columns and categoricals to their matching pair. Categoricals with no matching value (seen only in testing data, not in training) are mapped to NaN.

Also, I removed mapping argument from all score methods.