Add Daemon restart test along with Daemon utils

This PR allows writing tests that need a daemon restart.
There is also a very useful test case that can also serve as an example on how to use it.

Ping @unclejack @tianon @vieux
Don't we need to handle the case where these might be the empty string?  Or does Docker itself already handle these being passed in empty just fine?  (Thinking of if `DOCKER_GRAPHDRIVER` or `DOCKER_EXECDRIVER` aren't set when we call `NewDaemon`.)