Instead of just sorting by the name the sort order will now be:
1. Panels whose name match a search term
2. Panels whose keywords match the most search terms
3. Panels whose description match the most search terms
4. The remaining panels by name
https://bugzilla.gnome.org/show_bug.cgi?id=729027
Now that we don't allow or load external panels, using libgnome-menu is just
overengineering. We can get the same results with less code by keeping a static
list of function pointers.
This reduces the number of places one needs to patch to add a new panel.
Also, this way we avoid registering all types at startup, and if we want
we can switch to load panel desktop files in a separate thread.
https://bugzilla.gnome.org/show_bug.cgi?id=690165
This involves storing the default window title and icon name and resetting
the title and icon name when an embedded settings panel is closed.
The icon name and title for each panel is retrieved from the desktop file
information and stored in the CcShellModel.