make random forest better

Previous random forest will gather all the forests each worker trained to master. This step doesn't scale.

Now each worker stores the forest it trains in another distributed array. And the prediction process is also parallelized.