Test discovery and load (Phase II)

* Add support to inspect and find tests inside a directory, recursively,
by using the method `discover_directory()`. It takes a path and
returns the tests parameters it discovers.
* Change how we discover tests so that we don't set the queue for
communicating, by the time we're looking for tests. Leave it for
the runner module.
* Add methods `discover_url()` and `discover_urls()`, which will return
tests parameters from a list of urls (paths).
* Rewrite code inside `_run()` method in order to make use
of `_multiplex_params_list()` method, containing the logic
to create test variants from the param lists and multiplex_files.