[SPARK-2907] [MLlib] Use mutable.HashMap to represent model in Word2Vec

@mengxr Please review the code. 
Change list:
1. Used mutable.HashMap to represent syn0Global and syn1Global to reduce shuffle size.
2. Introduced local vocabulary to perform more precise learning rate update. 
3. Replace layer1Size with vectorSize to correctly set vector size.  Previously, layer1Size was always the default value of vectorSize. 
4. Set alpha to be the correct startingAlpha.

For 100 partitions,  using mutable.HashMap reduces shuffle size from 8.1G to 4G.