Share common tree-building driver logic

New file SharedTreeModelBuilder has a lot of common stuff between GBM
&DRF.
Switch test_tree.csv to Earl's version.
(fix PCA from using AppendableVec's)
Mid giant GBM hack
GBM mid-hack; ESL2 pg 387, Steps 1-2biii

Most of GBM done right.
Needs step 2biv, nice pretty-printers for whole (small) datasets.
compile errors
prostate+GBM working, not cars

Cars.csv as missing data, catagoricals, and a response klass (7 cylinder
cars) which never appears (although 3-8 cylinders do appear).  Currently
failing on building a tree for cylinder 7.
GBM looks like its working

Handles covtype, cars, prostate, & a few more with a variety of
arguments
Missing response col cutout
More missing NPE check
sort'n this evil dataset

has really bad split choices, for having many cols that have equal
values & NAs
Better handling of non-splittable conditions

Can not-split if either all predictor columns are constant, or the
responses are all constant.  Sometimes cannot tell that cannot split
until a Histogram is run over the region.  Clean up many asserts & add
more comments.
Utils.add handles null subsrrays
Merge w/ master
Few more places to handle bad splits
Fix memory leak

Keep only the compressed trees, not all the POJO tree pieces.
Merge branch 'master' into cliffc-gbm7
Cleanup some FVecTest & GLMTest2

Block-for-keys to go back; force new Vec Keys into the KV store on
frame-insert
Merge branch 'master' of github.com:0xdata/h2o
Fixed leaked keys in GLMTest2
Merge with master