Defining subparsers, allowing us to have task specific args
Normalizing the setup definition only when it is set.
Adding the "new_setup" task
Making args#parse_args testable

and, obviously, adding a test.
Extracting some methods from args#parse_args

It was quite hard to understand what was going on on that mess, still
messy, but better
Adding --desc to all task

Allows us to define description to a run.
Updating README

Documenting the new help system and the new_setup task.
Update README.md
The current path is always added to PYTHONPATH

This allows the user to run a setup in the current dir without having to
manipulate it's $PYTHONPATH
Removing DataSource#validation_data

It seems that cross validation is good enough.
With this change, the Searcher part that used the validation set was
replaced by the same validation process used in the Trainer.
Removing references to env var $MLPAL_TESTS

No longer needed.
new_setup's DataSource was missing #raw_to_matrix
Adding peek task

Helper to check exactly what is being sent to the classifier.
DataSource#raw_to_matrix -> #Xy

It's better to let the user define X, y. The convention was just making
things harder.
Removing references to raw_validation (not used anymore)
DataSource#Xy(..., data) -> Xy(..., raw_data)
Trainer#_get_metrics returning the training score
Adding ColsExtractor#__repr__
Defining ClassifierAsFeature#__repr__
Now ClassifierAsFeature can wrap a classifier that ...

has already been trained.