[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://chart.googleapis.com/chart?cht=tx&chl=\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" style="border:none;">