tdw: fix allocation hack for new workspace code

Fix size-allocate handler that keeps the main display area at the same
position when a left or top neighbour widget is shown or hidden.

Add documentation for it.
Palette commands: make them show the palette

Palette bookmarking, and moving left or right in the palette with a
keypress should also show the palette.
uicolor: use GTK3 syntax, remove unused code

Convert module to GTK3 syntax, and remove some unused colour spaces.
Add a couple of extra tests.
hcywheel: fix mask saving and loading via dialog
topbar: fullscreen: use less space, add icons

Just use a single menuitem with the normal mode menus redone as submenus.

Add some icons for prettiness in the fullscreen state.

Copyright notice.
palette: add a nicer custom icon
Fix floating window positioning
workspace: better naming for is-showing method

The method is querying an event in the present progressive, not the past
perfect, so asking whether a widget "[is] showing", is better than asking
whether it "[was] shown".
workspace: various doc comment fixes (NFC)
workspace: keep-above hack, for certain desktops

Set keep-above in full-screen mode and poke it at certain points in the
workflow. This hack helps avoid some interruptions from the DE's panels in
Xfce 4.10, so hopefully it'll help a bit in Unity etc. too.
workspace: reveal tab when a tool widget is shown

Reveal a tool widget's floating window, sidebar, and tab when it's shown:
this is intended to form a "switch to" or "reveal" command achieved by
re-showing the widget by its gtype-name + params.
workspace: various workflow improvements

* Refuse auto-hide if the pointer is grabbed (might be window mgt)
* More consistent restarting of the autohide timer
Various whitespace and comment updates (NFC)
Allow tool widgets to have no associated action
factoryaction: support making MenuItem proxies
Tabbed workspace support for brush groups

Let each brush group have its own tab in the workspace. The icon used is
that of the first brush in the group, but that can probably be improved.

Support brush group creation, import, export, rename, delete from various
menus and popup dialogs.  All the stuff that the soon to be deleted
GroupSelector currently does, in other words.
pixbuflist/brushlist: fix DnD exceptions
backgroundwindow: fix exception when opening

Fix error caused by excluding the default backgrounds when trying to load
them.  Some code tidying. Add lots of debugging info, and log image load
errors to the various outputs.
brush groups: replace old selection widget

Brush groups are now separate tabs in the UI, and are accessed from the
main menu or from a toolbar menu button.
brush group action: fix labelling & translation

* Submenu: use the translated form of the brush group names.
* Proper capitalization for the top menu item.
* Add a short-form title for toolbar items to use.