Add Support For Max Consecutive Failures on a Task

We now can set the max number of consecutive failures that a task can
have before we kill it. Such number is optional and applies to a each
specific Health Check.

Conflicts:
	src/main/java/mesosphere/marathon/Protos.java
	src/main/proto/marathon.proto
	src/main/scala/mesosphere/marathon/MarathonScheduler.scala
	src/main/scala/mesosphere/marathon/MarathonSchedulerService.scala
	src/main/scala/mesosphere/marathon/health/HealthCheck.scala
	src/main/scala/mesosphere/marathon/health/HealthCheckActor.scala
	src/main/scala/mesosphere/marathon/health/HealthCheckManager.scala
	src/test/scala/mesosphere/marathon/health/HealthCheckTest.scala
Make scheduler driver a singleton. Consecutive failures is required.
Fix JSON typos in deployment doc
Merge pull request #291 from mesosphere/max-failures

Add support for max consecutive health check failures
added models for groups and stub GroupsResource
UpgradeManager: interface defined
UpgradeActor: first sketch
DeploymentPlan: deployment steps to execute
UpgradeEvent: add success and failed events
GroupRepository: genesis
small changes
Group: add version
GroupRepository: basic persistence
Group: remove clutter
Group: Rest CRUD operations
Make group persistent
Proto: add definitions to proto
Stepping: rename to Step
Group: implement MarathonState hooks
GroupResource: use  GroupManager to implement the methods
GroupManager: handle state updates and trigger deployments
GroupRepository: copy/paste from AppRepository
added restart call
make restart fail if tasks fail to start
added events and fixed callback for startup
make EventBus mandatory
DeploymentStep: now has waitTime and a check function
DeploymentAction: now has tasks to kill
GroupRepository: load latest AppDefinition from AppRepository, when Group is loaded
ignore local mesos.proto
added DeployActor
DeploymentPlan: make it a MarathonState
marathon.proto: add proto messages