[NuGet] Handle exception when zero size .nupkg in packages directory.

Fixed bug 23759 - Package manager crashes when zero byte .nupkg is
in solution packages directory.
https://bugzilla.xamarin.com/show_bug.cgi?id=23759

Now if there is an exception when trying to get the solution packages
the error is logged and the solution packages are not displayed in the
Add Packages dialog. An error will be displayed in the Add Packages
dialog at the top of the dialog about being unable to read the zero
byte .nupkg file and any attempt to add a new NuGet package will fail
with the same error which will still be shown at the top of the
dialog.
[NuGet] Report correct error when checking for package updates.

If there is a zero byte .nupkg file in the solution's package
directory and check for updates is enabled then the error message
shown in the Package Console was:

"An exception was thrown while dispatching a method call in the UI
thread."

The DispatchService wraps the exception with its own so if a call is
dispatched to the UI thread the underlying error message is lost if
you use ex.Message and not ex.ToString (), which will show the full
call stack.

Now the NuGet addin will check if the exception thrown, whilst
checking for updates, has an InnerException and if the error message
is the one thrown by the DispatchService and will show the inner
exception's message instead in the Package Console.