Refactor configuration. Move Zookeeper config to its own trait.
Initial work for task rate limiting
Add test for rate limiting
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 'app doesn't exist' bug.

When a task starts and finishes before marathon has a chance to handle
the status updates, the app gets lost.  We should make sure we know
about the app as soon as a task is launched.
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.