api: Add CallResponse type as return value to cli.call()

This works just like the previous utils.NewReadCloserWrapper() in
that its a stream that lets you read the body but also closes
the client connection. However, it also lets you access the
full response and client connection if needed.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
Container: Split out preparations from Start()

We want to reuse this part later.

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
Add "docker fork" command

This is similar to docker start, in that it starts executing a pre-existing
container. However, the actual execution happens inside the client, rather
than from the daemon.

This works by doing a REST call to the daemon which sets up the container
for execution, and then returns the execdriver command required to locally
start the container. The daemon then keeps the request file descriptor open
and considers the container running until it is closed.

This is useful in combination with "docker create" (see
https://github.com/dotcloud/docker/pull/4548), which lets you set
up a container ahead of time. You can then run "docker fork" from
inside a process manager (such as e.g. systemd).

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