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.