[Decision Trees] Performance speedups for core tree generation loop

Summary:
1. Parallelized splitting of trees
2. Added benchmarks
3. More unit tests.

Test Plan: unit test converage.

Differential Revision: http://phabricator.tullo.ch/D14