Add an helper for VCS cloning

Still to implement:
 * tar and url support

Change-Id: I0ce7dd2fbf94c7f32f4907b64ef8caa965c85b67
Add a refactored SignalDirector

Outline support for dependent test definitions, parameters or install:deps
Integrate handling of testcase results into TestAction.
Base Connection on the Job so that any Connection has access to both
 the device and the dynamic pipeline_data in the job context.
Populate lava-test-case results into the pipeline data.
Split out Connection classes
Handle keep_running inside the TestAction to easily associate
 test results with a TestAction.
Add Timeout support

Change-Id: Icf46f779fcc0ca89b16b65af4cf3b55feeda2163
Add Failure Retry and Diagnostics support

Add unit tests for failure-retry and Diagnostic classes.
Completes LAVA-1379.

Change-Id: I8fb73e8f5e959acda9f96ed2ced94c915c24fcb4
Pipeline: fix random failures in the test suite

lava_dispatcher.pipeline.test.test_defs.TestDefinitionHandlers.test_overlay is
failing on my machine because the elements in the list are not in the same
order.
See the Traceback:
  File "lava_dispatcher/pipeline/test/test_defs.py", line 112, in test_overlay
    self.assertEqual(check_list, script_list)
AssertionError: Lists differ: ['lava-vm-groups-setup-host', ... != ['lava-test-case', 'lava-add-k...

Using assertItemsEqual (python >= 2.7) allows to check that both list contains
the same elements, even if the order is different.

Change-Id: I9345e19e142fcd7a389279300240d36541216296
Migrate deployment data

LAVA-1603, LAVA-1545 - drop references to old
LavaContext and lava_dispatcher.config calls and
use NewDevice in the pipeline.

Change-Id: I2525611fa718b0aa8551a013b5bc6a3b1c349241
Improve test shell handling

LAVA-1419 - also fix the loghandler usage in the
Connection.

Change-Id: I0898c2b9851b705f34ff73527249a562826c5bbe
Remove remaining sign of the pipeline_data

Change-Id: If428723c3b2f22a5bdad6067082741ae7a84e3ba
Pipeline: move some functions to a utils module.

The folowing function are now available:
 * filesystem.rmtree
 * filesystem.mkdtemp
 * shell.which
 * strings.indices

Change-Id: Ic9fdac5d24ac40d09bed0ef49e06474c3c1a902e
Replace 'if k not in X:...' by setdefault

setdefault gives the exact same result while reducing the code size.

Change-Id: I35b44b46f442dd059458d1c31127305197a0b604
Add some FiXMEs

Change-Id: I9a4a419b67216119bf852fc7c3528da1d744f7af
Deployment: remove one uneeded function

Change-Id: If66117e68383a115c97a01eb32ca145a82c75e91
Give the current parameters to the created action

The parameters are then available during the populate stage which is required
to change the internal pipeline according to the job.
For instance, handling a qcow2 image is now way easier and can be done in the
populate function.

Change-Id: I5e8263e81ba393522873498778371cdab7ec6745
Handle qcow2 images

The pipeline is now able to check if the filename looks like one of a qcow2
image. In this case a conversion action is added in the pipeline to convert
into raw.

Change-Id: I9bfe7d145ac02e8edbac2db91e01e7b449c7bc82
Validate every pipeline element, then raise errors

This will helps users to fix all errors in one shot.

Change-Id: I3669815657eed6cde1f09f3228146ba6361f8629
Implement AutoLogin action

Change-Id: I6036928eb2ff14178d307853ebd5bac3bc9c8834