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.