Store performance for issue #358

+ Tasks are now stored as individual keys.
+ Apps using the old storage format will be migrated on their first read if found.
+ Marathon performs some cleanup of orphaned tasks once after a reboot.
+ Added comprehensive unit tests for the TaskTracker module and refactored code slightly.
The logic works correctly. I migrated from an older version and saw all changes in zookeeper.
It would be great, if we can move migration logic outside of core logic.
In the deployment_features branch I made a Migration class: https://github.com/mesosphere/marathon/blob/wip-deployment-features/src/main/scala/mesosphere/marathon/state/Migration.scala
Perhaps we can move it there, when the branch has been merged?