Adding DataSource#__init__ to the new_setup template
Removing DataSource's #test_size and #slice_for_tests

mlpal is supposed to be lightweight.

Now DataSource#test_data and #raw_test return iterators, giving the
developer more freedom to choose if and how they will split their test
set.
Extracting the cross validation logic from train to cross_validation

It turns out that in some very specific scenarios we can't clone a
classifier, but sklearns cross_val_score always clones the classifier.
The new mlpal.cross_validation.cross_validate helps us to run a
"custom" cross validation without cloning the classifier (but no in
parallel, of course).