* Use `msbuild` from VS 2022 if available
- should ease local and TeamCity builds
- make `%InstallDir%` unquoted (unlike `%vswhere%`)
- shorten `%Path%` slightly
- nits:
- use script location more; no need to change directories
* React to new build issues
- follow up to #396
(unsure why new FxCop and "spelling" errors didn't fail that PR)
* Put `PortReserver` users into an xUnit collection
- expand our text matrix to include a modern (and LTS) TFM
- change how Formatting test assemblies are found
- `netcoreapp` is no longer the only relevant folder prefix
- use the latest .NET 6 SDK
- install the 2.1.x runtime in the pipeline
- don't require .NET in VS
- will use binplaced `msbuild` instead
- have `git` ignore the new .msbuild/ folder
- react to new `Exception.Message`s in `netcoreapp3.1`
- handle different formatting of argument info in `ArgumentException.Message`s
- handle slightly greater `decimal` precision in a `JsonReaderException.Message`
- react to new `Exception.Message`s and other changes in `net6.0`
- handle different `Message` in `InvalidOperationException`s about invalid request URIs
- react to other changes in `net6.0`
- handle inability to mock a `Stream` if a writer passes a `ReadOnlySpan<byte>` in `net6.0`
- see moq/moq4#829, moq/moq4#979, and dotnet/runtime#45152 about the issue
- skip tests failing due to `HttpResponseMessage` changes
- see #386 and dotnet/runtime@b48900f3b3 (which introduced this)
- fix coming **Real Soon Now™️** 😁
- nits:
- simplify define use now that `NETCOREAPP3_1_OR_GREATER` and so on are available
- clean up .gitignore
- clean up a few comments and tighten scripting up