Add relationship between a test and the job it's being run on.

It's very useful for a given test to be able to get information
on the job it's running. For instance, if we want to notify
a server that a test has failed, the unique identification of
the failed test will be its tag together with the unique job id.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
avocado/job.py: give every single job an unique id

This is either generated automatically when the job is manually
run on a test machine, or generated by a test server and passed
along to the job on the machine that will run it.

The second use case creates a relationship between the server
that initiated the test and the running test itself, so that it
can identify itself back to the server.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
Introduce test journal plugin

This plugin keeps a record of status changes to the tests
during a job. Each one of the status changes can then be
sent to an avocado server to give feedback to the test owner.

Signed-off-by: Cleber Rosa <crosa@redhat.com>
avocado.core.data_dir: Refactor and introduce .get_data_dir()

Introduce data_dir.get_data_dir(), an API to retrieve the
value of the data dir, a place where we should store data
dir files used by tests, such as ISO files, VM image files,
reference jpeg/png files and the such.

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

Add a plugin that can list data directories used by
avocado. This way, we can easily glance what is being
used according to the settings available.

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

Add one meager unittest that verifies part of the intended
behavior for the data_dir module.

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