[SPARK-2511][MLLIB] add HashingTF and IDF

This is roughly the TF-IDF implementation used in the Databricks Cloud Demo: http://databricks.com/cloud/ .

Both `HashingTF` and `IDF` are implemented as transformers, similar to scikit-learn.
Just curious, is this more efficient than importing `scala.JavaConverters._` and doing `document.asScala`? I think that's a more common way to do this. (It's better than the older JavaConversions, which just had a conversion from java.Iterable to scala.Iterable).