feat(Publisher): Adding support for publishing multiple service ports

As discussed in #2044.

This changed the behavior of the publisher into using the interal port as part of the query. Since we want to support multiple ports we somehow need to differentiate the ports but I'd rather not switch to posting JSON or something to keep the keys simple (as they are now).

This has worked great for us and actually makes sense. The query (in pseudo) for the clients will be for example "give me port 5432 of an instance of postgres" and the answer will be "1.2.3.4:49123" or whatever.

I hope I made my point clear about this approach. Will follow up with another PR that cleans up the logging and also deletes etcd keys on docker events when this is merged/rejected.
Yeah there are some other small fixes I would like to make as well but wanted to keep the PR clean as the feature it adds, right or wrong?

> 10 okt 2014 kl. 01:23 skrev Matthew Fisher <notifications@github.com>:
> 
> In publisher/publisher.go:
> 
> >  	var publishableContainerName = regexp.MustCompile(`[a-z0-9-]+_v[1-9][0-9]*.(cmd|web).[1-9][0-9]*`)
> >  	var publishableContainerBaseName = regexp.MustCompile(`^[a-z0-9-]+`)
> > +	host := os.Getenv("HOST")
> we should check and error out if HOST is not set
> 
> —
> Reply to this email directly or view it on GitHub.