catfile: Refactor catfile cache to make it easier to extend
Because of #3763 (closed) I want to refactor the catfile cache to not always spawn two processes anymore even though we often just require one. But as always, as soon as I start to take a loot at the catfile implementation the only thing that remains is confusion. So this MR sets the stage by refactoring the catfile cache to be easier to read and less weird, setting the baseline for a split cache where we separately store the two different kinds of processes.
I initially wanted to go all the way, but figured that the MR is already big enough right now. Adding additional functional changes on top would be too much for a single review session.