This was introduced by Andrew for migrations, where he needs "fake" AppCache instances.

I shall review the resulting code with him once the branch is merged; we could come up with simplifications.