CommonAssemblyInfo updates

Updated all projects to use shared `CommonAssemblyInfo.cs` file.

Due to usage of internal classes and `InternalsVisibleTo()` in AssemblyInfo found it necessary to rework the auto-generation to automatically add this for all test assemblies.

Unfortunately as we prescribe that anyone should be able to clone and compile without using the command-line our `touch CommonAssemblyInfo.cs` PreBuildEvent is no use as it doesn't populate the InternalsVisibleTo. I've fixed this by now including a default `CommonAssemblyInfo.cs` in the repository.

However this meant that every command-line build that generated a new `CommonAssemblyInfo.cs` (as we need it to) caused git to track a changed file. As such I've used `git update-index --assume-unchanged src/CommonAssemblyInfo.cs` in Rake `init` task so that this is avoided.

Not perfect, but getting there without compromising original build process goals.