Auto restart containers based on restart policy

This implements the proposal in #7226

Closes #7226
Closes #7521

#### Restart Policies

Using the `--restart` flag on docker run you can specify a restart policy for
how a container should or should not be restarted on exit.

**no** - Do not restart the container when it exits.

**on-failure** - Restart the container only if it exits with a non zero exit status.

**always** - Always restart the container regardless of the exit status.

You can also specify the maximum amount of times docker will try to restart the
container when using the **on-failure** policy.  The default is that docker will try forever to restart the container.

    $ sudo docker run --restart=always redis

This will run the redis container with a restart policy of **always** so that if
the container exits, docker will restart it.

    $ sudo docker run --restart=on-failure:10 redis

This will run the redis container with a restart policy of **on-failure** and a
maximum restart count of 10.  If the redis container exits with a non-zero exit
status more than 10 times in a row docker will abort trying to restart the container.