fix(scheduler/coreos): fix apps announcing themselves with no port

This PR contains commits which together address the issues relating to apps not announcing a port. This causes the router component to write an invalid configuration file.

TESTING: rebuild the controller
```console
$ make -C controller stop build start
```

Now, deploy an application which contains a ```web``` Proctype. Note that it should scale just like it always did.
Same with a Dockerfile (cmd type). Now, add a ```clock``` proctype (or just about anything else) to the Procfile and note that no announce containers will be created when the app is scaled.

Testing the lack of port assignment is more difficult - hopefully those who saw the error can confirm this fixes it.

closes #1251, closes #1260, closes #1256