Trains a classification model

The currently supported classifiers are:
   Logistic Regression Classifier
   Decision Tree Classifier
   Random Forest Classifier
   Gradient Boosted Trees Classifier
   Naive Bayes Classifier
   Multilayer Perceptron Classifier
In addition to any generic learner that inherits from Predictor.

This module featurizes the given data into a vector of doubles and
passes it to the given learner.

Note the behavior of the reindex and labels parameters, the parameters interact as:

reindex - false
labels - false (Empty)
Assume all double values, don't use metadata, assume natural ordering

reindex - true
labels - false (Empty)
Index, use natural ordering of string indexer

reindex - false
labels - true (Specified)
Assume user knows indexing, apply label values. Currently only string type supported.

reindex - true
labels - true (Specified)
Validate labels matches column type, try to recast to label type, reindex label column
