Automatically OSS sign binaries during build.

Automatically OSS sign (delay sign and then set the "signed" CLI
header flag) binaries during build.  The "SkipSigning" property can
be set by an individual project to prevent signing that assembly, and
we do this for our build tools assemblies.  The SkipSigning property
can also be set on the command line to prevent signing all assemblies.
Fix build break when System.Collections.Immutable is GAC'd.

In certain configurations the version of System.Collections.Immutable that Microsoft.DotNet.Build.Tasks references is also located in the GAC.  One such example is having Visual Studio 2013 Community Edition + Visual Studio 2015 Preview installed on Windows 10 Technical Preview.  I suspect (but have not confirmed) that the real issue is VS 2015 Preview, as I believe it is what causes the assembly to be GAC'd.

Because of this, ResolveAssemblyReferences will not copy System.Collections.Immutable into the output directory when build Microsoft.DotNet.Build.Tasks.  Because of this, when we later go try to build the NuGet package for Microsoft.DotNet.Build.Tasks, we fail because the file is not present.

The fix is to mark this reference with the <Private>true</Private> metadata so that it is always copied to the output directory.
Merge branch 'enable-signing'
Use separate obj directory per project.

The buildtools were overriding the intermediate path to be the same for every
project. This causes issues because not all intermediate files have unique
names. In particular, incremental or parallel builds could silently put the
resources from a different project in to an assembly!