Moved CompileModule execution

- Execute compilation modules when the compilation context is being
created. This runs within the cache context of the project itself which means
that modules can add ICacheDependencies that will get picked up by the system.
- Moved assembly neutral interface extraction to EmbeddedReferencesHelper