[NuGet] Add component to check for updated packages.

UpdatedPackagesInSolution looks at all the projects in the current
solution and checks for updated packages in each project. Information
on the updated packages is cached so the Packages folder can use this
information in the Solution window. Currently the UI is not updated.
[NuGet] Check for updated packages when the solution is opened.

Use a startup handler "/MonoDevelop/Ide/StartupHandlers" to ensure the
package updates are checked after packages are restored. There is an
existing package restore startup handler which is run first.

When the solution is closed the information about updated packages is
cleared.
[NuGet] Add event indicating updated packages are available.

The UpdatedPackagesAvailable event will be used to trigger the
Solution window to refresh its Packages folder and show information
about any updates.
[NuGet] Add count of package updates available to Packages folder.

After updated packages have been found for the project the Packages
folder will be refreshed so it shows the number of updated packages.

    Packages (1 update)
    Packages (3 updates)
[NuGet] Show updates for each package in Solution window.

For each package under the Packages folder if there is an updated
package available the version number of the updated package is
displayed next to it. For example:

     NUnit (2.6.1 available)