wip
Merge branch 'master' into store-performance

Conflicts:
	src/main/scala/mesosphere/marathon/MarathonScheduler.scala
	src/main/scala/mesosphere/marathon/tasks/TaskTracker.scala
	src/test/scala/mesosphere/marathon/MarathonSchedulerTest.scala
	src/test/scala/mesosphere/marathon/TaskTrackerTest.scala
Merge fixes
Slight refactoring:
+ Moved TaskTrackerTest to correct package
+ Moved newTaskId method into the only class where it's being used.
Changes to TaskTracker to store tasks as individual keys.
+ Changed method visibility
+ Store tasks as individual "variables"
+ Refactored taskIdUtils to be a singleton class that we can mock for testing.
+ Renamed started to created (to avoid confusion with /actual/ starting state, which we currently ignore).
+ Added logic to remove app if we are shutting it down with no tasks.
+ Removed use of remove method directly. Will call shutdown and only remove if there are no tasks left.
Tidyup:
+ ReconciliationFrequency is the wrong name. It should be ReconciliationInterval.
+ This is already implemented as part of the TaskTracker terminated method.
+ Rename method and add explanatory comment.
Added expunge logic and test.
Formatting and removed stats.
Merge branch 'master' into store-performance
Message is debug only.
Remove warning.
Code review fixes
fixes after rebase