retry to retrieve metadata on failure during pull

This makes Docker retry to retrieve the JSON metadata for the layers.
Docker will make 5 attempts to retrieve the metadata before failing and
it will increase the delay between attempts after each failed attempt.

This is a backport of PR #4387. The following changes had to be made:
-				img     *image.Image
+				img     *Image

-				img, err = image.NewImgJSON(imgJSON)
+				img, err = NewImgJSON(imgJSON)

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Only unshare the mount namespace for execin

Fixes #4728
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)

Conflicts:
	pkg/libcontainer/nsinit/execin.go:
	  ns.logger.Println("unshare namespaces")' was removed already
Use BSD raw mode on darwin. Fixes nano, tmux and others

Docker-DCO-1.1-Signed-off-by: Guillaume J. Charmes <guillaume@charmes.net> (github: creack)

Conflicts:
	pkg/term/termios_freebsd.go:
	  removed changes for this file because it's not present
Disable automatic killing of containers when docker stop fails

Docker-DCO-1.1-Signed-off-by: Brian Goff <cpuguy83@gmail.com> (github: cpuguy83)

Conflicts:
	container.go:
	  KillSig had to be changed to Kill
 -      if err := container.KillSig(15); err != nil {
 +      if err := container.kill(15); err != nil {
fix failing test to use kill instead of stop

TestCreateStartRestartStopStartKillRm was failing because stop has been
changed to not kill containers.

Docker-DCO-1.1-Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com> (github: unclejack)
Merge pull request #4781 from unclejack/backports_for_0.9.1

Backports for 0.9.1