Major changes
1. Refactored node splitting into a private function called
_split_node.
2. Added copy argument to copy the data once and for all.
3. Removed n_samples_ attribute in CFNode.