Multiple ports

Instance ports are exposed as `PORT0 .. PORTn` in the environment. `PORT0` is also exposed as `PORT`, like before.
When starting an app, you can now set the global app ports for load balancing in the API request, instead of random ports being assigned. If `ports` is left out, one random port is chosen to be backwards compatible.

Breaking changes:

 * The protobuf format changed, so data in ZK needs to be flushed
 * `port` is gone from the API in favor of `ports` (array)
 * /v1/endpoints in text/plain includes the port in the first column to support multiple ports per app. Before: `play 8080 ...`, after: `play_8080 8080 ...`
 * /v1/endpoints JSON format changed