Cleanly shutdown docker

Ok, so here is what we will do when you stop docker.

### SIGKILL
Nothing we can do here.  However, when we restart we will find all ghosts containers and SIGKILL them because we are in an inconsistent state and they cannot be trusted.  We will then iterate though the state of the containers that were running and restart them for you.  

### SIGTERM, SIGINT, etc
When you shutdown docker we will send a SIGTERM to all running containers and wait until they stop before returning. If a container never stops then docker does not stop. It is up to the sysadmin to handle this. If the sysadmin SIGKILLs docker because it is not returning then they will end up with real ghost containers when docker is started again and we will SIGKILL them when docker reboots.  Any containers that were running will be restarted when docker starts again.


#### Implementation Details
1) We discussed keeping the prctl parent death signal to containers when docker dies unexpectedly but I think for consistence across the drivers we should not do this for native even if it is just a SIGTERM or whatever.  It makes the shutdown logic much cleaner and consistent in the long run.

2) Because the native driver still needs to kill ghosts ( because we don't deliver the prctl sig) but we don't want to be issuing SIGKILLS to pids that were not our own we now save the start time along with the pid in the native driver so that in the event of a system reboot, we can verify that the pid and it's start time are consistent with what we have on disk.

#### Side effects
The only side effect is the the docker daemon will take longer to shutdown.  We launch the stop of containers concurrently so the stop time will increase to the stop timeout configured ( ~10sec ).

#### Issues fixed
Fixes #4766 
Fixes #4767 
Fixes #4677 
Fixes #4641 
Fixes #4376 
Fixes #4141