ilastik/applets/base/appletSerializer.py: Overrode shouldSerialize for SerialBlockSlot. This checks to make sure that all relevant groups and datasets are serialized. Required as SerialBlockSlot has a couple layers of nested groups and it is not obvious if it has been serialized without checking the full structure. Related to issue ( ilastik#1052 ).
ilastik/applets/base/appletSerializer.py: Added shouldSerialize method to AppletSerializer. This tries to call shouldSerialize for all slots. Only happens if self.topGroupName is specified and the AppletSerializer is not already dirty. Related to issue ( ilastik#1052 ).
ilastik/shell/projectManager.py: When checking whether to serialize verify that shouldSerialize is True also. Fixes ilastik#1052.
ilastik/shell/projectManager.py: When checking whether to serialize in saveProjectSnapshot verify that shouldSerialize is True also.
tests/test_applets/base/testSerializer.py: Make sure to clean up temporary files.
tests/test_applets/base/testSerializer.py: Add a test where the serialized results are deleted to make sure they get written again.
tests/test_applets/base/testSerializer.py: Add a test for serializing to non-neighboring blocks.
tests/test_applets/base/testSerializer.py: Add a test using to non-neighboring blocks where the data is removed, but not the groups. This creates a situation like that in the issue ( https://github.com/ilastik/ilastik/issues/1052 ).
Merge pull request #1053 from jakirkham/cache_serialization_fix

Cache serialization fix