Refactored cache file creation so that is all contained inside FFileContents wrapper. File is now created the first time a block is commited which means a cache file will not be created for traces that doesn't use the cache (currently all non-memory traces).
#rb ionut.matasaru
#preflight 60bdff28f3ba640001f49b8f
[CL 16568925 by Johan Berg in ue5-main branch]
Introduces a persistent storage system for Unreal Insights. The cache is based on fixed block sizes. Users give a unique name which is associated with a unique caching index. User can then allocate fixed sized blocks of memory and store data inside. The system make no assumption of the saved data. Each block is ref counted and as it is released the memory is committed to disk.
Additionally a small user data section is provided per cache index for persistent storage of data which does not fit neatly into the block model, such as element counts.
#rb ionut.matasaru
[CL 16501017 by Johan Berg in ue5-main branch]