Decouple graph instantiation from the injector

This decouples the graph instantiation logic from the injector logic, allowing graph instantiators to be reused by other injector implementations (such as LensKit's).