[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 following exception is used for unsupported vector in appendBias and StandardScaler, maybe we could have a global definition of this in util.
    case v => throw new IllegalArgumentException("Do not support vector type " + v.getClass)