Prevent incorrect namespace from breaking your REPL

Fixes #849 

Thanks to the Roslyn APIs, this requires reflection to modify an immutable, private field :)
The problem does not appear on Mono due to different namespace handling there, however once Mono error reporting is improved (there is a separate issue for that) we will have to handle that there too.
I don't think this property should ever be null. A consumer should be able to always write things like `scriptResult.InvalidNamespaces.Any()` rather than a null check first. For that reason (amongst others) I'd probably prefer this to be backed by a field with an initializer and then added to using the constructor argument.