Fix shm_dir location in cache structure
Cache was incorrectly storing shm_dir inside datadir, but runtime expects them as siblings.
Fixed:
- Save cache templates now copy datadir and shm_dir as siblings (matching HAF cache structure)
- Smart cache lookup moves shm_dir if found inside datadir (backward compatible with old caches)
This fixes the sync job failing with 'no such file or directory' when Docker tries to mount shm_dir.