ListenAndServe sets up the required http.Server and gets it listening for each addr passed in and does protocol specific checking.
ServeApi loops through all of the protocols sent in to docker and spawns off a go routine to setup a serving http.Server for each.
ServeFD creates an http.Server and sets it up to serve given a socket activated argument.
ServeRequest processes a single http request to the docker remote api. FIXME: refactor this to be part of Server and not require re-creating a new router each time. This requires first moving ListenAndServe into Server.