avocado.loader: Add support to find tests from a directory.

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).

Signed-off-by: Rudá Moura <rmoura@redhat.com>
avocado.runner: Set test's queue when running the test.

Set test queue communication in the moment we're going to execute test.
So that, the test loader doesn't requires a queue when discovering the
tests.

Also the argument for `run_suite` is now a test suite: a list of
test factories and not a params_list (a list of dict).

Signed-off-by: Rudá Moura <rmoura@redhat.com>
avocado.job: Use _multiplex_params_list().

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.

The code for method `_run` was bloated so we refactor it
to make it a bit clear.

Signed-off-by: Rudá Moura <rmoura@redhat.com>
selftests: Update test from the changes on avocado.job.Job._run().

Signed-off-by: Rudá Moura <rmoura@redhat.com>