TISTUD-6552 Download and index Node.js core modules for user (for version they have)

- Fix indexing issue with modules where the properties hanging off the exports global were getting their owning type set to just "exports" and not the name of the module id's exports property type.
- Add a check for writing a property to index where the owning type doesn't match the type it's actually hanging off of in the model.
- Implement downloading the node JS source and finding the source in the place where we download it.
- Fix up CA proposals for things hanging off modules. Hack to convert our autogenerated guid for the module to the basename of the module file where it was defined.

This PR addresses some CA/indexing issues around CommonJS modules, and moves from a single NodeJS source path to a per-version path for sources. It does _not_ however auto-download the source. There's a button in prefs to download the sources for the NodeJS install set up in prefs.

Do we really need to convert to portable string here ? I think returning back OSString might be more generic. I remember we have certain issues with the compatibility of portableStrings with OSStrings ?