Major change to how test pack environment is configured

In this model you can attach resources to a test run.  Each resource is
represented by a `contextmanager` and can provide docker command line
options and stbt config options to provide some service to a test-job and
configure stbt in the test job to use the service.  For example, you might
bring lirc up as a resource, bind-mount the lirc socket into the container
using the docker command line and set `global.control` in the container so
stbt will use it.

The intention is to allow this configuration to be specified in a JSON
file as we have exceeded the capacity of the command line for configuring
a test-run.

Notes:

* Removed `--docker-arg` option from http-service
* No longer build test-pack specific images based on `Dockerfile`s.  This
  feature will come back in the future, but will not be docker specific.
* No longer take container stbt configuration from the host - it should
  completely and explicitly configured by the JSON.
Factor out new private command `run-test-job.py`

This is a command that will run a test-job given a json configuration on
the command line.  This can be used by both http-service and the SSH
service rather than having the HTTP service having to call the SSH
service.  This should make the HTTP service cleaner in the future.
http-service: Use `run-test-job.py` instead of `commands/run`

This is much neater as we no-longer need to pass a bunch of configuration
in via environment variables as we can make use of the JSON configuration
that `run-test-job.py` takes.
run-test-job: Add support for starting LIRC during a test run

... with a config file from the test-pack itself.
run-test-job: Add "pulsevideo" resource

Provides video into a test-pack container via DBus.
run-test-job: Add assertion check

Checks for typos when developing the resources.
http-service: Load test-pack-job configuration from file
http-service: Remove --test-pack-docker-image command line option

It has been superseeded by `--test-job-config-file`.
Add `/v1/remote_controls` endpoint for listing lirc configs

...given a particular SHA.  This will be necessary to allow the user to
configure which lircd config should be used, but also useful for setting
up the run-test-job config.