It's important to keep reference to the aspect clique that used to instantiate
a particular helper. Later it can be used to identify the correct session token.
Refactor Effect: drop type parameter, simplify usage.
Redesign the way values are provided by an Effect.
Simplify schedule method signature.
Drop scheduleWithTrace from Step interface.
Introduce ConfigureEvalStep.
Drop Step.Options.
Drop LocalEffect's.
In some situations it is unreasonable to fail on missing templates,
it's better to produce a working but perhaps incomplete program
than not to produce anything.
Step subclasses are meant to be immutable and stateless.
The state is now encapsulated in Effect subclasses, which can be combined.
Correspondingly, schedule now produces streams of effects.
The UI component TraceComponent serves as a visualization tool for a trace collected independently.
Messages are likewise collected elsewhere and shown via message log.
Certain compromises have to be made: for one, it is assumed there is only one
project open and it is a MPSProject. Feedback is only reported to the messages
view and the view itself is not yet integrated into the main messages view.
There might be several unrelated typesystems defined by languages imported into
a single model. A way to handle this is to use aspect cliques that correspond
to a collection of related aspects, which build a single typesystem.