SplitObjectApproximator: Refactor to use the SplitStrategy
SplitObjectApproximator: Refactor to use the SplitStrategy

This approximator now relies on an instance of a SplitStrategy to
perform its splitting, instead of also doing that itself.

sahandy/lepp2,sahandy/lepp2,mlalic/lepp2,mlalic/lepp2