Hand-crafted serialization for task history.
-CacheBackedFileSnapshotRepository now uses random Long for snapshot ids. We already use random Longs for keys in OutputFilesSnapshotter.
-The serialization of input properties delegates to java's serialization because the user can use any Serializable objects as input property values.
-keys are not serialized (not sure if they need to).
-tidy up and more unit coverage pending.
Refactoring / unit test coverage
More refactoring / unit test coverage
More refactoring / unit test coverage
Checkstyle