Changed the split evaluation code in Tree to use the LSB rather than MSB as a flag for categorical algorithm, and switched the meaning of the flag. This simplifies the tree building code.
Added an implementation of the _choose_split method for BestSplitter and PresortBestSplitter.
Added an implementation of the _choose_split method for RandomSplitter.
Replaced the split-choosing code in the various node_split methods with calls to _choose_split.