Change class generation to locate services based on the annotation attached to the property getter. This means that for artifact transforms, the workspace is not available via `@Inject` and the dependencies are not available via `@Workspace`.
Extract an interface out of `ServiceRegistry` to include only the pieces needed for injection by the instantiator infrastructure. This will evolve to allow different annotations to be handled differently, but for now it simply behaves the same way as before. Use a custom implementation of this interface for artifact transform instantiation, to avoid the cost of setting up a full mutable registry (for now).