Exit cleanly when SIGTERM is intercepted

Currently when SIGTERM is intercepted Docker exits with code 143. Due to this Systemd marks it as failed.

With this patch Docker exits cleanly with code 0.
When you hit SIGTERM or SIGINT 3 times, you're supposed to do a force shutdown of docker. I wouldn't call that graceful, so it should go the `os.Exit(128 + ...)` path, not the exit 0 path.