Ignore NuGet.exe

We don't want to keep binaries in the repo that make it bigger than necessary.
Converted RegexReplace and RunGit inline tasks to C# classes

With the T4-based codegen taking care of turning them back into inline tasks.
Added initial nuget package spec and release notes.
Fixed naming of ReleaseNotes.txt so that it gets included in the nuget spec
Added missing build targets for nuget.
Override nuget targets rather than creating slightly different named one.
Updated generation of both versions of CHANGELOG
Made changelog consistent whether a tag exists or not for Head

Previously, we'd generate the "pseudo" tag appending the release information (i.e. 1.0.0-2-asdfqe) but this meant that when a build got blessed and a new tag was generated, running the build again would result in changed changelogs, requiring another commit, which would again change the changelog contents (patch incremented) and so on.

So now we generate the same content whether the tip is tag or a pseudo tag, allowing to commit the changelogs, tag, and re-build without resulting in new changelogs (content-wise, they will be regenerated once though, but git will happily ignore that).
Updated changelogs
Fix markdown to always contain pseudo tag.
Updated CHANGELOG