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
I'll add the TODO, but this isn't really a true workaround - apps will still crash and crash hard when they can't get a port. This just keeps the sky from falling by preventing the app from publishing an incorrect config which the router will suck up. Leaving it here is probably good enough.