[NuGet] Handle invalid url when creating aggregate repository.

Fixed bug 21597 - Missing error messages for each package source in
Add Packages window >> All sources
https://bugzilla.xamarin.com/show_bug.cgi?id=21597

The Add Packages dialog was changed so that it is still possible to
see NuGet packages even if one of the package sources is unavailable
when All Sources is selected. Errors from the failing package sources
are shown at the top of the dialog, but if some package sources are
available then packages will be displayed.

Now if the package source has been configured with an invalid url then
only an error will be displayed in the Add Packages dialog even though
other package sources are available. On the Mac an invalid url is any
text that does not start with a forward slash (e.g. "foo").

The NuGet addin fails to create the package repository because the url
is invalid. This failure occurs outside of the error handling that
NuGet's AggregateException provides. The callstack is similar to that
shown below.

 --> System.UriFormatException: Invalid URI: The format of the URI could not be determined: abc
  at System.Uri..ctor
  at NuGet.PackageRepositoryFactory.CreateRepository
  at ICSharpCode.PackageManagement.PackageRepositoryCache.CreateNewCachedRepository
  at ICSharpCode.PackageManagement.PackageRepositoryCache.CreateRepository
  at ICSharpCode.PackageManagement.PackageRepositoryCache+<CreateAllEnabledRepositories>
  at System.Linq.Enumerable[NuGet.IPackageRepository,NuGet.IPackageRepository].MoveNext ()
  at NuGet.IPackageRepository,System.Linq.IQueryable`1[NuGet.IPackage]].MoveNext ()
  at System.Linq.IQueryable`1[NuGet.IPackage],System.Collections.Generic.IEnumerable`1[NuGet.IPackage]].
  at System.Linq.Enumerable.ToList
  at NuGet.AggregateQuery`1[NuGet.IPackage].GetSubQueries
  at NuGet.AggregateQuery`1[NuGet.IPackage]..ctor
  at NuGet.AggregateRepository.CreateAggregateQuery
  at NuGet.AggregateRepository.Search
  at NuGet.PackageRepositoryExtensions.Search

To fix this the creation of the package repository handles the
exception and instead throws the exception again when NuGet tries to
get any packages from this failing repository.