Move Build.proj to Buildage subdir

Buildage is going to be a new OSS project that encapsulates common build logic across all my projects.
This directory will probably eventually become a Git submodule to the future Buildage project on GitHub.
Modify paths per new Build.proj location
Rename GlobalAssemblyInfo.proj to Input.targets

Input.targets will become the new input file for Buildage.
Modify Build.proj to require Input.targets

This also relaxes the need to have default values for the Version_ properties.
Rename Input.targets properties to new standard

All properties and items will use the naming convension of starting with the file they are defined in.
Ex: Properties in Input.targets will all start with Input_
Rename InputBuildOutput task to InitOutput

Also move its execution to the CallTarget task in the Build target instead of being invoked indirectly as a dependency target by RunUnitTest.
This is being done as RunUnitTest is going to get moved out of the Build.proj eventually.
Add ValidateInput target to Build.proj

Validates that required properties from the Input.targets file are set.
Create new Version.targets file with moved tasks

Move the Version target from Build.proj to the new Version.targets file with associated properties.
Move call to execute the Version target to the CallTarget task in the Build target instead of using DependsOnTargets in the Compile target.
Also fix Attrib task so that it uses SourceRootPath property instead of MSBuildProjectDirectory since without that its not actually working.
Rename SourceRootPath property to Build_SourceDirPath

Per the new naming convension.
Move MSBuildCommunityTasks files to Buildage

They will be included as a part of the future Buildage project.
Create new Compile.targets file with moved targets

Move the Compile and Clean targets from Build.proj to the new Compile.targets file with associated properties.
Move Build_SourceDirPath prop to Input.targets

And rename it to Input_SourceDirPath to match naming convention.
Create new UnitTest.targets file with moved targets

Move the RunUnitTest target from Build.proj to the new UnitTest.targets file with associated properties.
Create Input_NUnitToolDirPath property in Input.targets to drive the NUnit task in the RunUnitTest target.
Create new Package.targets file with moved targets

Move the Package target from Build.proj to the new Package.targets file with associated properties.
Rename NUnitExtensions.nuspec to *.nuspec.template

This clarifies that the file is not a final nuspec file, but a template to create a real one.
Convert Package.targets to use nuget spec .csproj

The previous approach was to completely gen the .nuspec file and feed it into 'nuget spec'.  However, that produces a lot of redundancy between what's already configured in the source code .csproj file.  It's easier to use the .csproj file as the source and use the .nuget file for overrides or additional metadata.
To make Package.targets more parameterized, created the following properties in Input.targets:
- Input_PackageProjectDirPath
- Input_PackageProjectName
- Input_PackageTemplateSpecFilePath
Rename BuildOutputPath property to Build_OutputDirPath

To maintain property naming convension.
Modify Version target to gen multiple AssemblyInfo's

The original design was for the Version target to generate a single GlobalAssemblyInfo.cs that was linked into all projects in the solution.  The problem was it left out a few key assembly attributes that were still being defined manually in each project's AssemblyInfo.cs file, namely AssemblyTitle and AssemblyDescription.
This change feeds all of that metadata into the Version target via an item group in Input.targets (Input_ProjectDirs).  Once there, the Version target generates individual AssemblyInfo files within each project directory that contain common and specific metadata, all sourced from the Input.targets file.
The final important connection is that a lot of this metadata is then read by NuGet to create the package.  Now you have one place to source the metadata that feeds the AssemblyInfo files, which in turn get written to the assemblies themselves and the Nuget package.

Also improve XML comments in both the Input.targets and Version.targets files.
Add NuGet icon

Set icon URL to the path where the icon will live on GitHub.
Clean up Build.proj

Rearrange property groups, item groups, and imports.
Add missing XML comments.