#26518 #27462 Updates to how data caches are organized on disk

While this update will work with pre-015 cores (where cache files will
be stored in the pipeline configuration cache directory), it is really
intended as a 0.15 followup, attempting to resolve some things related
to the cache storage:

- sg data caches are now stored in the official bundle cache location,
allowing clients to customize the location of cache data. In addition,
it also creates a more clear, standardized structure and resolves
potential buildup of cache files in temp storage, which sometimes is
highly limited by design.

- we have seen potential evidence of md5 cache collisions with the
current implementation, where a large number of parameters are squeezed
into a single string that is md5 hashed. This change breaks out the
structure further and hopefully no collisions should appear.

- improved I/O handling around cache writes.

Closes #11.