Changed DefaultServiceRegistry so that a provider can define a configure() method to register additional services. Improved diagnostics when there are validation problems with service definitions.
Changed DefaultServiceRegistry so that it closes services in dependency order. Also moved validation so that it is more eager.
Treat NativeServices as a parent registry, rather than a nested one.
Changed BuildCommencedTimeProvider so that it no longer extends TimeProvider.
Moved some services out of DefaultDependencyManagementServices, some to live in global scope and some to live in build scope.