Add burn support for only caching packages

Includes a few commits for different phases. A couple of the tests are broken until one of the other changes I made are committed...not like a bunch of the tests aren't broken already.

VS has been shipping with this code for a while now with good test coverage.
This needs to stay StrAllocateFormatted with TRUE.