Added a static cache for findAvailableSubContexts

This currently takes 15% of the whole test time for me. Might not be that much without profiling, as it adds a huge amount of method calls, but should still be a good save.

This was profiled with a D8 site with quite a few modules and 185 scenarios, this method alone took 155s in my test run. The method is called 16k times, after this chnage, it is ~600ms. The whole initializing thing still takes 2s+, I don't know the specifics, maybe it could be improved further by caching the calls to it, but it's already a lot better than 150+ seconds..