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.
I've tried a few different combinations and have been unable to duplicate this. Do you have any custom settings that increase the reconcileAndScale frequency perhaps?

I've tried deleting different combinations of the keys in ZooKeeper and then restarting Marathon - don't see any stack traces.
`[__internal__:app:storage:version, task:test-app:test-app.141deb67-0d4f-11e4-a5dd-724d8cc0b69f, app:test-app, app:test-app:2014-07-17T01:09:58.357Z, frameworkId]`