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.
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!
Formatting and removed stats.