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

- [ ] Topic de-duplication
- [X] Support  100000 topics
- [X] Asymmetric Dirichlet priors
- [ ] Add the documentation
- [X] Add infer interface
- [X] Add unit tests
- [X] Add the performance test 
- [X] Optimizing the infer interface performance



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 term |  75496
The number of topics |  `2000`
alpha | 0.1
beta | 0.01
The running time |  79.75 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 term |  75496
The number of topics |  `10000`
alpha | 0.1
beta | 0.01
The running time |  124 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 | `150`
The number of term |  75496
The number of topics |  `100000`
alpha | 0.1
beta | 0.01
The running time |  501 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 com.zhe800.toona.lda.computation.TopicModelingKryoRegistrator
```
if you want to know more about the above codes, you can refer to the following formula:
First), the original sampling formula is :<img src="http://www.forkosh.com/mathtex.cgi? P(z^{(d)}_{n}|W, Z_{\backslash d,n}, \alpha u, \beta u)\propto P(w^{(d)}_{n}|z^{(d)}_{n},W_{\backslash d,n}, Z_{\backslash d,n}, \beta u) P(z^{(d)}_{n}|Z_{\backslash d,n}, \alpha u)">     (1)
Second), using the Asymmetric Dirichlet Priors, the second term of formula (1) can be written as following:
<img src="http://www.forkosh.com/mathtex.cgi?  P(z^{(d)}_{N_{d+1}}=t|Z, \alpha, \alpha^{'}u)=\int dm P(z^{(d)}_{N_{d+1}}=t|Z, \alpha m)P(m|Z, \alpha^{'}u)">    (2)