[SPARK-1405][MLLIB] topic modeling on Graphx

- [X] Support  100000 topics
- [X] Asymmetric Dirichlet priors
- [X] Topic de-duplication
- [ ] Add the documentation
- [X] Add infer interface
- [X] Add unit tests
- [X] Add the performance test 
- [X] Optimizing the infer interface performance
- [X] Verifying the correctness of the algorithm


The performance test:

`2000` topics:

Item | value
------------ | -------------
The cluster resource | 36 executors(36 cores, 216g memory)
The corpus size | 253064 document, 29696335 words
The number of iterations | `150`
The number of distinct term |  75496
The number of topics |  `2000`
alpha | 0.01
beta | 0.01
The running time |  `45.45` minutes

`10000` topics:

Item | value
------------ | -------------
The cluster resource | 36 executors(36 cores, 216g memory)
The corpus size | 253064 document, 29696335 words
The number of iterations | `150`
The number of distinct term |  75496
The number of topics |  `10000`
alpha | 0.01
beta | 0.01
The running time |   `62.96` minutes


`100000` topics:

Item | value
------------ | -------------
The cluster resource | 36 executors(36 cores, 216g memory)
The corpus size | 253064 document, 29696335 words
The number of iterations | `105`
The number of distinct term |  75496
The number of topics |  `100000`
alpha | 0.01
beta | 0.01
The running time |  `148.15` minutes

conf/spark-defaults.conf:
```
spark.akka.frameSize   20
spark.executor.instances 36
spark.rdd.compress true
spark.executor.memory   6g
spark.default.parallelism  72
spark.broadcast.blockSize  8192
spark.storage.memoryFraction 0.4
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.kryo.registrator org.apache.spark.mllib.feature.TopicModelingKryoRegistrator
```
There is a small bug.