./run: use imp module for AUTOTEST_PATH setup

Instead of hacking sys.path, just use the Python imp module to load the
module using the full path.

Also change the check for AUTOTEST_PATH to not rely on Exception
handling for flow control.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
./run: print clearer error message if AUTOTEST_PATH doesn't work

Error message before:

  $ ./run
  Traceback (most recent call last):
    File "./run", line 558, in <module>
      app = VirtTestApp()
    File "./run", line 271, in __init__
      self.option_parser = VirtTestRunParser()
    File "./run", line 151, in __init__
      _import_autotest_modules()
    File "./run", line 106, in _import_autotest_modules
      setup_modules_path)
  IOError: [Errno 2] No such file or directory
  $

Error message after:

  $ ./run
  Failed to import autotest modules from $AUTOTEST_PATH
  Could not load Python module /home/ehabkost/pessoal/proj/virt/autotestx/client/setup_modules.py
  $

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
./run: isolate initialization code that affects the whole process

The new system_setup() function will be used for the stuff that affects
the whole Python interpreter.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
./run: give AUTOTEST_PATH precedence over sys.path

If AUTOTEST_PATH is set, try to use it instead of the autotest modules
in sys.path.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
./run: try to import autotest modules at the very beginning

The _import_autotest_modules() function doesn't need to be called
multiple times, and calling it as early as possible will allow us to use
some autotest modules very early.

This also adds a workaround to an Autotest bug in some versions where it
enables debug logging as soon as the modules are imported.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>