Make execdriver a per container property

This way we can have different (non-default) exec drivers for some
containers.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
Add "foreground" mode for docker run and docker start

This is a mode of "docker run" that uses direct forking from the
docker client, meaning that the container is a direct child of the
docker run command (rather than the daemon), and that it directly
inherits stdout/err (and stdin if requested) from the parent of the
"docker run" command.

This is very useful in cases where you e.g. want to run a docker
container from systemd (or other process manager), as we can use the
process manager to e.g. set up cgroups and limits, monitor and
restart, pass in fds for socket activation, etc.

The way this works is that there is a new execdriver, which is used
for forground containers. This container just does rpc calls back to
the "docker run" command, which in turn uses a "real" execdriver and
feeds it whatever data the "fake" execdriver got, but in the context
of the docker run command.

We feed information about the process (exit status, pid, etc) to the
daemon, so it is visible just like any other docker container via the
docker apis.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
cgroup: Add ReuseCurrent option to --unit-conf

This causes docker to not create a new transient unit for cgroup
containment and resource limits. Instead it will reuse the current
cgroup and apply resource limitations to it using SetUnitProperties.

This is interesting mostly in combination with --foreground, because
it allows you to have a systemd unit file like:

[Service]
ExecStart=docker run --foreground --opt unit.ReuseCurrent=true run image
MemoryLimit=100M

With the following properties:

* Any limits and other properties set up in the service file applies
  to both the docker client and the container "as one unit".
* There is only one unit representing the service
* You can kill the service via systemd which will kill both client and
  container.
* If the client dies systemd will (first nicely then violently) kill the
  other processes in the cgroup (i.e. the container).

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
Add support for certificates for repositories

Via /etc/docker-certs you can specify extra root CAs and
custom client certificates/keys for specific hosts.