[NuGet] Components integration - package install waits for completion.

NuGet packages are still installed using the background dispatcher but
the InstallPackages method waits for the NuGet packages install to
complete. This makes the API more consistent with what Visual Studio
provides. Also it fixes the problem where a Xamarin component may
have multiple NuGet packages that need to be installed and after
installing the first NuGet package the Xamarin Component would
previously show an error since it was missing packages that were
currently in the process of being installed. Now the installation is
finished before the Xamarin components UI is updated.

Also make the components API thread safe even though it is called on
the UI thread by the components addin.