[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.
@mengxr @mateiz this looks really awesome!

I know this is merged already, but one comment: when using the hashing trick, should the vector size not usually be a power of 2? This is mentioned [here](http://scikit-learn.org/stable/modules/feature_extraction.html#implementation-details) for example.

Pretty much every library uses powers of 2 - Vowpal Wabbit, sophia-ml, scikit-learn and shogun for example.

So it may be worth mentioning, and making the default 2^20 (or 2^18 which is also a common default).