Fix `Instantiator` service injection so that services of type `ServiceRegistry` can be injected into instantiated things. This was previously available for services created by the `DefaultServiceRegistry`. Also disallow registration of services of type `ServiceRegistry` so that the automatically provided instances are always used.
Change `DefaultServiceRegistry.getAll()` so that it does not return services from parents that have been decorated or overridden by the current registry. Also change the interaction between parent and child registry so as to avoid assuming a particular parent implementation.