Add caching

Paired with @barneydesmond 

Addresses issue #28 

Modified caching of sourcedicts to write out partial caches after processing each contents spoolfile.
Maybe add a comment explaining why this is necessary.