ProjectReactor and ProjectBuilder should be deprecated. Plugins should no longer need to manipulate the project's structure.
Internally, ProjectDefinition should no longer be used after start up. All information that is contained in it should be made available in DefaultInputModule (not in the API).
For backward compatibility with plugins, we must still have ProjectDefinition available in the containers.
The hierarchy of modules can be discovered internally through InputModuleHierarchy. This object should be made immutable.
ImmutableProjectReactor can be deleted as a consequence.