Using a delegator factory to create a cached resolver (instead of swapping services)
Removing hacks around the service manager (that were used to override services)
Optimized imports
Tests cannot rely on `ServiceManager#setService()` when using delegator factories
Removing service configuration for the original resolver (not needed anymore)
Specification for a lazy resolver
The lazy resolver should just proxy calls to the wrapped resolver
CS/alignment
Base implementation of a lazy resolver
CS (newline between `use` and `namespace` keywords)
The lazy resolver should work even if no renderer is passed down to the real resolver
The real resolver should never be created if not needed
The real resolver should be instantiated only once
The lazy resolver should reject invalid instantiators for the real resolver
The lazy resolver now throws exceptions on invalid instantiators
Implementing base exception for invalid instantiators
CS (newline between `use` and `namespace` keywords)
Base exception interface for resolvers provided by the `OcraCachedViewResolver` module
Exceptions should implement a base exception interface
The lazy resolver should reject instantiators that don't provide a valid real resolver