[Web References] Add configuration dialog for collection types.

This adds a 'Configure' context menu item to launch a dialog
where the user can configure the list and dictionary collection
types.  The dialog is also launched when creating a new Web Reference.

This requires MonoDevelop to run with mono/master commit ea570f3 or
later; there is a runtime check which automatically hides the dialog
if the runtime is too old.
[build] Ensure cecil reflector is copied over too
[Debugger] Properly resolve static fields when hovering over them

Final fix for bug #7642
bumped mono-addins for obj dir ignore fix
[Debugger] Use a better approach for getting a decimal from a StructMirror

Should fix bug #7896
[build] Ensure the makefiles keep the submodules up to date
[TextEditor] Fix some p/invokes on windows
[Windows] Fix all remaining p/invokes

We need to use cdecl

Conflicts:

	main/src/addins/WindowsPlatform/WindowsPlatform.cs
	main/src/core/MonoDevelop.Ide/MonoDevelop.Components/CairoExtensions.cs
Bump md-addins
[Debugger] Slight optimization: initialize both type & value arrays in the same loop
[Debugger] Fixed BreakpointPad to handle Delete keypresses

Fixes bug #7766
[Ide] Correctly handle multiple different OutputPaths in the project config editor

We need to handle the case where the user has multiple output paths defined for
their build configurations. In this scenario if you select the 'All Configurations'
item in the dropdown, it will have empty text. We need to ensure that immediately
changing that dialog to another configuration, like 'Debug', does not trigger
an error dialog due to the path being 'invalid'.

Due to the lack of proper save notifications, there is no cleaner way of handling
this as saves are implicit and are performed as soon as the combobox changes.

Fixes bug #7897
[Core] Fix an sln incompatibility between MD and VS.

Visual Studio writes sln files using upper case Guids. If MonoDevelop writes lower
case Guids in sln files, VS will not understand and the projects can end up being
disabled in all project configurations.

Reconcile this difference by making MonoDevelop read/write the guids as upper case.
Now sln files can safely be modified by both MonoDevelop and Visual Studio.
[Ide] The ErrorListPad now respects the 'Copy' command

If you use the 'Copy' command while an item is selected, it will now
get copied to the clipboard.

Fixes #7756.
[Ide] Fix another bad Gtk.TreePath comparison
[Ide] Gtk.TreePath must be compared with 'Equals' and not '=='

The class does not provide an '==' operator so this call would end
up performing a reference equality test which is not what we require
here.
[Ide] Fix the handling of when a ProjectReference is removed

The project reference removed code should handle the event in the same
way as the project reference added code by getting the TreeBuilder for
the ProjectReferences collection.

This (in combination with the previous commit) fixes a bug where
MonoDevelop could leave the references node in an inconsistent state.
[Ide] We should have a shortcut for Save All, not Save As

If ctrl-s is 'Save Current', ctrl-shift-s should be 'Save All'. It's a much
more common action than 'Save As' in an IDE where you edit multiple files
at once.
[Core] We never added API to check if a compilation symbol is defined

Add a 'Contains' method to go with the Add and Remove methods we already
have for compilation symbols.
[Core] Add better heuristics for matching configurations

When a new project is added to a solution, we now use better heuristics
to figure out which project configuration should be used for every
solution level configuration. For example if there's a solution
level configuration called 'Foo|Any CPU', which does not emit the 'DEBUG'
symbol, we should choose a project configuration which also does not
emit the 'DEBUG' symbol.

Fixes bug #6169.