Replace the low level EWMH icon drawing functions with new ones that are
much more generic: instead of the specific icon format these new ones
produce 1-byte-per-pixel images with user-controlled byte values.
These new functions will hopefully be useful for other kinds of icon
formats. In particular, to directly create colour-index bitmaps without
working backwards from the ARGB values generated currently.
Then for the actual EWMH icon support wrap it all up in a single
function that allocates and creates all of the icon data in one shot,
using the new generic functions under the hood. This simplifies the
calling code somewhat.
As a bonus, the overall code size seems to be reduced.