plugins.multiplexer: rename filter keywords

Rename them from filter_out and filter_only to filter-out and filter-only,
respectively.

Motivation: consistent with original RFC and easier to the eyes, specially when
new filter keywords get added (filter-depth, filter-value, etc).
examples: add a relatively complex multiplexer file

This is the tree we've been using in several of our discussions and
algorithm simulations.
avocado.utils: Introduce data_factory library

We frequently need to generate data for framework or
testing purposes. Introducing data_factory, a library
dedicated to this purpose.

With this, we can make other parts of avocado to use
it and supersede old functions used on this regard.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado: Make rest of the framework use the data_factory functions

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.core.data_dir: Add get_datafile_path API

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.utils.remote: Add port to the list of Remote params

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.job: fixing exception call on Ctrl+c

s/TestTimeoutError/TestInterruptedError/
Merge pull request #179 from adereis/mux

multiplexer misc commits
avocado.job: don't run additional tests if user hits Ctrl+C

Ctrl+C was aborting the current test, but avocado would keep
looping through the list provided in the command line.
Rename --unique-id to --force-job-id

Also improve its documentation, explaining that users should
not use this option unless they know exactly what they're doing

Signed-off-by: Ademar de Souza Reis Jr <areis@redhat.com>
Merge pull request #178 from adereis/ctrl_c_fixes

ctrl+c fixes
avocado.utils: Split download and url related libraries

To avoid a few oddities inside avocado code.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.utils.path: Add get_path API

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.utils.io: Add logging related functions

So we can introduce aexpect.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.utils.process: Add PID manipulation APIs

So that we can do things such as killing an entire
process tree, necessary for aexpect functionality.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.utils: Add wait library

Add a library for functions with the same pattern: wait for
another function to evaluate to True, for a certain amount
of time.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.utils: Add astring library

Add string manipulation APIs to the avocado.utils namespace.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.utils: Add aexpect library

Add aexpect, a near exact copy of the code that
has been used by virt-test for a long time. It
is a library for controlling interactive process,
similar to pexpect, but with some additional
properties:

* Programs may stay alive between tests and jobs
* More sophisticated class structure

Signed-off-by: Lucas Menghel Rodrigues
avocado.test: Set the base log dir for io.log_line on tests

So that when we use io.log_line, files get written to
the appropriate test log locations.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado/utils/network.py: introduce unused ports related utilities

Signed-off-by: Cleber Rosa <crosa@redhat.com>