Kill tasks that aren't running after 60 seconds.

By default, tasks which don't enter TASK_RUNNING after 60s should be
killed.  This parameter can be changed via command line with the
`--task_launch_timeout` switch.
Fixed Marathon's task accounting.

We must guarantee that Marathon will never launch more than N instances
for a given app (where N is the number of instances requested).
More task accounting fixes.

 - Refactored internal task state
 - Added task lanch rate limiting
 - Ensure we rebalance tasks periodically
Fixed another task accounting bug.

When apps are shut down or scaled down, we need to wait until we get
acknowledgement before removing those tasks from Marathon's state.
Simplify TaskTracker

- remove stagedCount to have one source of truth
- serialize one set of MarathonTasks with stagedAt and startedAt timestamps, instead of keeping separate lists
- remove rate limiting via recently completed list. New impl coming.