Refactor utility `MkBuildContext` to the more generic `archive.Generate`

This facilitates refactoring commands.go.

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Move remote api client to api/

This moves `commands.go` out of the core and into `api/client.go`

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Remove duplicate function displayablePorts

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
api/container.go: an API-specific representation of a container

This breaks the dependency from the remote API implementation to the
internal representation of a container. Instead it uses its own partial
representation of a container, with only required fields.

* This preserves reverse-compatibility with all past implementations of the remote API.

* This clarifies which fields are guaranteed to be present in a response
	A docker remote api server *may* return more fields in a Container
	object, but their presence and semantics are not guaranteed and should
	not be relied upon by client implementations.

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Merge pull request #4102 from shykes/separate-mkbuildclient

Refactor utility `MkBuildContext` to the more generic `archive.Generate`
Merge pull request #4107 from shykes/separate-api-client

Move remote API client out of the core and into api/
`docker cp` error when container doesn't exist

Fix cp api to return a 404 notfound if container doesn't exist.
Fixes #4119.

Docker-DCO-1.1-Signed-off-by: Fabio Falci <fabiofalci@gmail.com> (github: fabiofalci)
add a little reenforcement to the help for docker build -q

Docker-DCO-1.1-Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au> (github: SvenDowideit)
Add dockerode NodeJS implementation
Also correctly case 'JavaScript'

Docker-DCO-1.1-Signed-off-by: Mike MacCana <mike.maccana@gmail.com> (github: mikemaccana)
Avoid temporarily unmounting the container when restarting it

Stopping the container will typicall cause it to unmount, to keep it mounted
over the stop/start cycle we aquire a temporary reference to it during this time.

This helps with https://github.com/dotcloud/docker/issues/4036

Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
Merge pull request #4061 from mikemaccana/patch-1

Add dockerode NodeJS implementation
Merge pull request #4164 from fabiofalci/cp_error_message

`docker cp` error when container doesn't exist
Support submodules when building from a gh repo

Docker-DCO-1.1-Signed-off-by: Song Gao <song@gao.io> (github: songgao)
Merge pull request #4180 from alexlarsson/fix-restart-race

Avoid temporarily unmounting the container when restarting it
Merge pull request #3463 from songgao/patch-2

Support submodules when building from a gh repo
Merge pull request #4113 from SvenDowideit/build-quiet-help

add a little reenforcement to the help for docker build -q
docker-ci 0.5.6: Fully dockerize docker-ci. Add build test coverage. Add backup builder.

Docker-DCO-1.1-Signed-off-by: Daniel Mizyrycki <daniel@docker.com> (github: mzdaniel)