Refs #7614 - Disallow customising of the "Interfaces" menu.

The menu is now handled seperately to the user's customised menus, which
should otherwise work exactly as they did before.
Refs #7614 - Allow only one instance of each USW interface.

Ensure that there is only ever at most one instance of each kind of
UserSubWindow interface open.

Note that this does cover PyQt interfaces, which have to be policed from
inside the various Python scripts themselves.
Refs #7614 - Group interfaces into submenus by category.

UserSubWindow interfaces will no longer compile unless they define a
static categoriesInfo() function.  PyQt interfaces define their categories
in the Mantid properties file.  If the categories string provided by an
interface (UserSubWindow or PyQt) is empty, then the interface will be
put in an "Uncategorised" submenu.

Multiple categories per interface are allowed, but nested categories have
not been implemented.

We map interface names to categories when setting up.  Removed the old
pyqt_interfaces list and replaced it with calls to the keys() method of
the map instead.
Refs #7614 - Add "Manage Interface Category" dialog.

Tried to move things around and make the relevant code in
ApplicationWindow a bit better.

Removed the ability to add interfaces to custom menus.  That dialog is now
solely for Adding python scripts.
Merge branch 'master' into feature/7614_interface_categories

Refs #7614

Conflicts:
	Code/Mantid/MantidPlot/src/ApplicationWindow.h
Refs #7614 - Correct categories for Create MD Workspace.
Merge branch 'master' into feature/7614_interface_categories

Refs #7614.

Conflicts:
	Code/Mantid/MantidPlot/src/ApplicationWindow.h
Merge remote-tracking branch 'origin/feature/7614_interface_categories'