Work with Bifröst user caches

The user cache stores the computed Bifröst simulation as files on disk per frame. The Bifröst simulation reads the cache files each frame, instead of recomputing the simulation. Cache files are created for each cacheable Bifröst object, which includes liquid, aero, foam, and solids (for collision objects). The user cache is intended for the final, approved simulation, unlike the temporary scratch cache which is meant for scrubbing and playback on the fly.