Merge pull request #598 from DavidKarlas/bug20683m

[Ide] Fixing disabled OSX ContextMenus in Modal dialogs(Bug 20683)
[Ide] Fix crash when opening context menu

... when using the keyboard shortcut.
Merge branch 'master' into retina-SideBySide

Conflicts:
	main/src/core/MonoDevelop.Ide/MonoDevelop.Components.DockNotebook/TabStrip.cs
[NuGet] Install all checked packages even if they are not visible.

Previously only those checked packages that were visible in the Add
Packages dialog would be installed when the Add Packages button was
clicked.

Now you can check a package, search for another package, check the new
package, and then install both packages even though the first package
is not displayed in the Add Packages dialog.

A checked package that was previously removed from the Add Packages
dialog by a search will still be checked when it is next displayed
in the Add Packages dialog if the dialog is not closed. So if the
search is cleared or the search returns the original package it will
show as checked. Note that the package id and the package version
needs to exactly match. A different version of the package would not
be checked.
[Ide] Use a thin paned to separate notebooks
[Ide] Add windows shortcuts for notebook commands
[NuGet] Incorrect button text when single package checked.

Fixed bug 19672 - Add Package button changes to 'Add Packages' on
selecting single nuget Package.
https://bugzilla.xamarin.com/show_bug.cgi?id=19672

Previously the Add Package button text would change to Add Packages
when only one package was checked. Now at least two packages must be
checked for the button text to change to Add Packages.
[NuGet] Disable Add Package button whilst typing in search text.

When a package was checked the Add Package button was enabled whilst
the search text was being typed in. With the new logic that allows a
package to be checked but not visible on screen the Add Package button
was incorrectly enabled whilst the search text was being typed in. Now
if the loading message is being displayed the Add Package button is
disabled.
[NuGet] Enter key in Add Packages should install checked packages.

When the search text box has the focus with one or more packages were
checked and the enter key was pressed instead of the checked packages
being installed the currently selected package was installed. This was
inconsistent with what happens when the enter key is pressed whilst
the list view has the focus.

Pressing enter whilst the search text box has focus is supposed to be
equivalent to pressing the Add Package button.

Now when the search text box has focus and there are one more checked
packages then pressing enter will result in the checked packages being
installed. Pressing the enter key during a search will not install any
packages whilst the loading message is displayed.
[Ide] Tab drop improvements

* CommandManager.cs: Improved tracking of the active window. Added
  property to get the top level windows, in the (approximate) order
  they are stacked.
  Improved detection of user activity.

* PlaceholderWindow.cs: Use the new TopLevelWindowStack property to
  get the list of windows in z-order, and use that to highlight the
  correct notebook when moving the mouse over the different windows.
[Ide] Fix focusing issues with notebooks

SdiWorkspaceWindow now sets the currently active notebook. Removed that
call from other places.
[Ide] Allow using the document switcher in floating windows
[Mac] Properly enable/disable menu items
[Mac] Properly enable/disable menu items
[Mac] Fix previous commit
Updated reference to md-addins
[Ide] Fix minor assembly resolution issue

Use the active configuration when getting the referenced assemblies to be used
for code completion.
[Ide] Add support for cross-toolkit images

Xwt.Drawing.Image objects can now reference native images from different
toolkits. For example, a single Image object can contain a reference
to a Gdk.Pixbuf and an NSImage. The goal is to be able to use a single
object instance to represent an image that can be rendered in any
supported toolkit.

ImageService now loads the icons using a special api that allows
specifying the image source. This source will be used to load
platform-specific images on demand.
[Ide] Added Control class

Also added mac-specific build configurations that conditionally
reference MonoMac.
[NuGet] Uncheck original package when a different version checked.

Previously it was possible to check multiple different versions of the
same package. This would mean the Add Packages dialog would install a
package multiple times and the end result would be just one package
installed. The last package to be installed would be the one left in
the project. The other versions would have been uninstalled as each
package was installed.

Now when a different version of that package is checked the previously
checked package is unchecked. So only one package with the same id
will be installed from the Add Packages dialog. This also means when a
search is run for all package versions it is not possible to check
multiple packages when they have the same package id. Since it is not
possible to install multiple versions of the same package into the
same project it should not be possible to do this from the Add
Packages dialog.