Parse in module

Don't review yet.
This ugliness comes from `Context`. Once that is sorted out, this should also be cleaner.
This function should in no way depend on `kompileOptions` and `globalOptions`, but this is the only way I can instantiate the `Context` object. When we are going to use `DefinitionContext` and `ModuleContext` we won't have this issue.