Dynamically reference NuGet packages

After merging this, the steps get things working in Visual Studio will be:

1. Run `kpm restore` (or `build repo-initialize`)
2. Open the solution
3. Build twice
4. Close and re-open the solution

(And I wish that was a joke.) I'll continue looking at ways we can make this better.