Document Block.needs_update better
Add Block.block_id
Add Block.hash_of
Add assemble.hash_store.HashStore
Add HashStore.store
Add HashStore.get
Make assemble.hash_store a package
Add assemble.hash_store.json.JsonStore
Add JsonStore.ensure_file_exists
Use fully qualified import in assemble.assembly's body
Rewrite JsonStore.load_data
Add JsonStore.sync
Add HashStore.sync
Add JsonStore.store
Add JsonStore.get
Drop difference tracking in JsonStore
Add body to assemble.hash_store.json
Fix JsonStore.get
Update JsonStore docstring
Add a hash store to the assembly