Cleanup: refactor parsing and handling of Daemon config

* Merge `daemonconfig` into `daemon/config.go`
* Apply post-parsing default values in `NewDaemon` for DRY
* Command-line flags are defined and installed in `daemon.Config.InstallFlags` instead of in `main`

This depends on #7497
On Tue, Aug 12, 2014 at 3:05 PM, Victor Vieux <notifications@github.com>
wrote:

> In daemon/info.go:
>
> > @@ -66,7 +66,6 @@ func (daemon *Daemon) CmdInfo(job *engine.Job) engine.Status {
> >  	v.Set("IndexServerAddress", registry.IndexServerAddress())
> >  	v.Set("InitSha1", dockerversion.INITSHA1)
> >  	v.Set("InitPath", initPath)
> > -	v.SetList("Sockets", daemon.Sockets)
>
> If we remove this, it requires a API bump as it's a breaking change.
>

I have a problem with the way we handle API versions currently. As soon as
we bump the version, new clients refuse to talk to old servers (even though
it would work just fine). How can we fix this?