* Sync state is periodically flushed, and stored with an optimized list of paths to conform a workspace back to the same state.
* Writes are automatically queued to run asynchrnously once a bundle of data is ready to be stored, rather than clients having to trigger a write.
* BundleStore supports different contexts for different reads, to prevent hashed blobs being merged together when reading from different sources.
#rb none
#preflight none
[CL 21293876 by Ben Marsh in ue5-main branch]