Enable consistent builds by sharing common properties and targets

This is the first step to fix https://github.com/dotnet/buildtools/issues/18. Currently depending on how you build you get different build behaviors and binaries dropped into different locations. This change adds a dir.props and dir.targets at the top and bottom of every csproj file so they get a consistent set of properties and targets.

This change also cleans up build.proj a little to share some of the common properties and adds a way for projects to detect if the build tools are present or potentially outdated. 
Take a look at @terrajobst's write-up: http://blogs.msdn.com/b/dotnet/archive/2013/08/27/nuget-package-restore-with-team-foundation-build.aspx

The short version is that there's a nuget feature now that let's VS restore packages before msbuild is ever run. It pretty much just works.