cache fixes

After thorough testing while working on Bitcoin's replacement descriptors that take advantage of the cache, these issues came up. See individual commit messages and doc change for description.
- Fix broken builds when no cache is present
- Fix resulting yml determinism when cache is present