Project versions

Create multiple versions of each project according to the specific version(s) of Visual Studio targeted by the extension. Each project is treated individually.

* Implementation assemblies and extensions are not directly referenced in other packages, so only one version is provided which is installable in all applicable versions of Visual Studio.
* The immutable Output Window interfaces assembly only needs one version, since it does not expose any Visual Studio version-specific APIs (and is immutable, so never will).
* The immutable Commenter interfaces assembly needs multiple versions, but they can all have the same assembly name since they are equivalent at runtime (after assembly binding redirection provided by Visual Studio 2012+).
* The Shell Utility and Text Editor Utility projects use the same assembly name for each version, since:
  1. For now these assemblies are equivalent at runtime, and
  2. The assemblies included in the NuGet packages can be renamed in the future without renaming the NuGet package, and NuGet will update the dependent projects accordingly.
* The Shell Services projects use separate assembly names because once #5 is resolved they will not be equivalent at runtime.