icons: Fix icon theme support for StatusNotifierItem
If SNI is used, the tray icons are passed along to the visualizer
by name rather than as a pixmap (the SNI protocol would support
pixmaps too, however that is a) discouraged and b) not supported
e.g. in Unity).
The SNI interface supports a more or less undocumented attribute
IconThemePath, which may contain an additional path for the
visualizer to look into for specific icons. At least Plasma and
LXQt seem to expect a hicolor theme in the given directory.
Have StatusNotifierItem create a skeleton hicolor theme containing
the tray icons in a temporary directory, and pass that along via
IconThemePath. The tray icons to be saved are dynamically determined
using the current icon theme/fallback.
All available icon sizes are saved as pixmaps; sadly, with the dynamic
approach, scalable icons cannot be supported. Alternatively, one could
hard-code the relevant .svg files from the fallback themes, and copy
those, but that would just be annoying - and kill themeability.