[SPARK-2852][MLLIB] Separate model from IDF/StandardScaler algorithms

This is part of SPARK-2828:

1. separate IDF model from IDF algorithm (which generates a model)
2. separate StandardScaler model from StandardScaler

CC: @dbtsai
The current API is more consistent with others like `LinearRegressionWithSGD`. We can add them later after we figure out the right way to specify parameters.