Fix PackageManagement.sln.

Allow NuGet addin to be compiled and unit tests to be run separately.
Support version constraints in packages.config file.

NuGet allows you to define a range of package versions that are
allowed in your project.

http://docs.nuget.org/docs/reference/versioning

This is done by editing the packages.config file and adding an
allowedVersions attribute for the installed package. For example,
the following restricts jQuery to be any version from 1.4 up to but
not including version 1.8.

  <package
    id="jQuery"
    version="1.4.1"
    targetFramework="net40"
    allowedVersions="[1.4.1,1.8)" />

The NuGet addin now supports this information when updating the
package from the PowerShell console when using the Update-Package
cmdlet when no version is specified. With the above example when
updating jQuery the NuGet addin will now update to jQuery 1.7.2 and
not the latest 2.1.1 version. Previously it would update to the
latest version of the NuGet package.

Note that if you search for another NuGet package and install a later
version that is outside the allowed range it will still install. This
is the same behaviour as Visual Studio. The allowedVersions attribute
is to prevent you from accidentally updating the version but you can
explicitly pick a later NuGet package and update to it with the
Manage Packages dialog.
Use version constraints for updates shown in Manage Packages dialog.

A version constraint defined in the packages.config file, as shown
below, is now used when checking for package updates from a package
source. Previously always the latest version of the NuGet package
would be displayed as an update in the Manage Packages dialog.

  <package
    id="jQuery"
    version="1.4.1"
    targetFramework="net40"
    allowedVersions="[1.4.1,1.8)" />

After updating to jQuery 1.7.2 then no further updates will be shown
in the Manage Packages dialog.

Currently this only works if a project is selected when the Manage
Packages dialog is opened.