Removed some unused variables from the node_split method. Made some small changes to its docstring and comments.
Removed a condition, allowing RandomSplitter to sometimes partition an already-partitioned sample. This will result in a (probably small) performance loss, but is outweighed by the benefits of the code simplification coming in my next commit. If the performance loss is too large we can reimplement the condition in a DRYer way. As of this commit, the node_split methods of the Splitter subclasses are identical.
Moved the node_split method from the subclasses of Splitter into Splitter itself. This removes the repetition of some fairly hairy feature management code.