[mcs] eval.cs: add AssemblySavePath

If not null, specifies the directory into which
generated assemblies should be saved.
[mcs] eval.cs: unify variable modification and evaluation result

Emit evaluation updates in OptionalAssign so that
every “result” can be tracked, not just assigns
or the final evaluation result.

Unify the structures for both notifications and
final evaluation result.