Add `hostname` support for `GROUP_BY` constraint
Fix performance issue with `GROUP_BY` constraint

Assume there are three hosts. Host1 has 2 tasks, while host2 and host3
both have 1 task. We should assign tasks to either host2 or host3, but
in the original implemetation, it waits for only one of the two hosts.

This commit also simplified the implementation, all tests passed.
Expose ports in env as PORT_XX.

Make it possible to refer to declared ports by number when
starting/configuring an app.

That means that if you put the following in your app manifest:

{
  [...]
  "ports": [80, 443]
  [...]
}

Then the env for your app will contain the following variables:

PORT_80=32185
PORT_443=32184

Port mappings are also supported, so if you put the following:

{
  [...]
  "container": {
    "type": "DOCKER",
    "docker": {
      [...]
      "network": "BRIDGE",
      "portMappings": [
        {
          "containerPort": 8080,
          "hostPort": 0,
          "servicePort": 9000,
          "protocol": "tcp"
        },
        { "containerPort": 161, "hostPort": 0, "protocol": "tcp"}
      ]
    }
  }
  [...]
}

Then these vars will be added to the env:

PORT_8080=32185
PORT_161=32184

Fixes #588
fixes #809 - Flaky test DeploymentActorTest.RestartApp
Merge pull request #818 from maselvaraj/master

Made marathon store future timeout configurable. Default 2 seconds is no...
Merge pull request #811 from mesosphere/wip-809-drexin

fixes #809 - Flaky test DeploymentActorTest.RestartApp
  Add Artirix to the list of companies using Marathon
Merge pull request #822 from iangelov/add-artirix

Add Artirix to the list of companies using Marathon
added TaskReplaceActor to prevent upgrades with min health cap from stalling
Merge pull request #720 from iven/master

Add `hostname` support for `GROUP_BY` constraint
Add resources tab and page w/ links to vids, tutorials.
Merge pull request #826 from mesosphere/wip-754-drexin

fixes #754 - added TaskReplaceActor to prevent upgrades with...
added first play-json formats and removed json4s
fixed some formats, added some and use play-json to serialize AppDefinitions
restructured Formats, added more formats and use play-json in AppsResource
moved helpers into Formats trait
fixes after rebase
Merge pull request #831 from mesosphere/wip-play-json-drexin

first steps towards play-json
Merge pull request #827 from mesosphere/resources-tab

Add resources tab and page w/ links to vids, tutorials.
Merge pull request #774 from gkleiman/master

Expose ports in env as PORT_XX.