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.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>
avocado.utils.params: Add copy() method
avocado.plugins.builtin: Fix plugin loading
Merge pull request #182 from lmr/virt-test-fixes

Virt test fixes