Fix for issue #10

In order to address issue #10, we need to compute the closure of project references so that we know whether any of the project outputs we're getting as inputs are already packaged by someone else or are coming from NuGet.

I've tried to keep the changes to the existing targets small. Since we have to deal with direct and indirect dependencies in a couple of places, I pretty much left the existing targets simply return their outputs based on the closure and added metadata that indicates whether that item is coming from a direct or indirect dependency. This should make future work a bit simpler.

Also, in order to compute the closure, we need to inject a target into `Microsoft.Common.targets`. This required changes to the test infrastructure, as well as the setup and the NuGet package for NuProj.