Port over changes to the ScriptSnapshot API from the languageService-v2 branch.

Port over changes to the ScriptSnapshot API from the languageService-v2 branch.
I would make that options.
the batch compiler users do not care about version, LS users do, also version is not used in the batch compilation scenarios and all the LS entry points sets that; so you are probably fine with setting the version to undefined in batch.