[WIP][SPARK-1405][MLLIB]collapsed Gibbs sampling based latent Dirichlet allocation

This PR is based on @yinxusen's #476 
The performance test:

`500 `topics:

Item | value
------------ | -------------
The cluster resource | 36 executors(36 cores, 216g memory)
The corpus size | 196558 document, 27719730 words
The number of iterations | `100`
The number of term |  4853087
The number of topics |  500
alpha | 0.1
beta | 0.01
The running time |  266 minutes

`1000` topics:

Item | value
------------ | -------------
The cluster resource | 36 executors(36 cores, 216g memory)
The corpus size | 196558 document, 27719730 words
The number of iterations | `100`
The number of term |  4853087
The number of topics |  `1000`
alpha | 0.1
beta | 0.01
The running time |  443 minutes



`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 |  795 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
```