avocado.multiplex_config: Add unittest

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.test: Make test classes able to use params dicts

Introduce the possibility of using params dicts to
avocado tests. The params dicts lets tests to set
test tagged names based on the 'shortname' param,
among other features.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.job: Process multiplex files

If one passes a multiplex file in the runner arguments,
we shall use it and generate test dicts for the entire
test matrix, and pass those dicts to each test instance.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.plugins.runner: Introduce --multiplex-file option

With this, people will be able to introduce a --multiplex-file
(short -m) option to the run subcommand, that provides the
path to a multiplex file, that will be turned into a test
matrix (list of dicts) that will be run by the test runner.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
sleeptest: Modify to make use of self.params/multiplex file

Modify sleeptest to pick any params from self.params.
Also, introduce a sample multiplex file, sleeptest.mplx,
an example of how to write a multiplex file to fulfill
matrix defining goals.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
.travis.yml: Add functional tests for multiplex

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.plugins: Add multiplexer plugin

Add a multiplexer parser, so people can try out their
multiplex files. Here is an example of usage

    $ scripts/avocado multiplex tests/sleeptest/sleeptest.mplx
    Dictionaries generated:
        dict 1:    sleeptest.short
        dict 2:    sleeptest.medium
        dict 3:    sleeptest.long

You can display dict contents by providing the flag --contents
(short -c).

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
.travis.yml: Add multiplex plugin functional testing

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>