[MSBuild] Much better handling of per-project ToolsVersion

We now roundtrip ToolsVersion correctly, reducing project file churn.

Check for each project file that we have a MSBuild builder new enough
to handle its ToolsVersion.

Remove confusing warnings about sln version not matching ToolsVersion,
since it doesn't really matter, what matters is that we can handle
the project file's ToolsVersion.
[MSBuild] Default file format can no longer be changed

There is almost no reason to make it easy for users to default
to creating older file formats, all it does is increase chance
of messing things up. Projects can still be exported, loaded and
roundtripped with older formats, so we're not removing
functionality.

We now always create projects with the MSBuild12 file format,
which can be opened in VS2010 SP1 and later.
[MSBuild] Test ToolsVersion is loaded/converted correctly
[MSBuild] Per-solution build engine

Should fix BXC17076 - Add support $(SolutionDir) in monodevelop

And various other possible issues.
[MSBuild] Improve ToolsVersion handling and fix tests

Some serialization behaviours are affected by the project's
ToolsVersion, not the version of the sln.
[MSBuild] Better roundtripping of ProductVersion/ToolsVersion