use hash table for icon caching

Simplify icon name/pixbuf passing by not having a special cache member
for each icon and prepare for passing names instead of pixbufs.
remove pos from applet_menu_item_add_complex_separator_helper()

Remove a redundant parameter that was allways set to -1 by the caller
and the related code.
return icon name from get_icon() whenever possible

Get rid of all unnecessary pixbuf passing and prepare for appindicator
support that requires icon name passing instead.
indicator: add support for --enable-indicator

Add new configure option --enable-indicator which implies a optional
dependency on libappindicator. This is the way systray is done in the
current versions of Unity, KDE and Enlightenment and others. Some of the
systray implementations already dropped support for Xembed, others are
going to, mostly to gain independence on X11 as part of being ported to
Wayland.

Keep the previous functionality intact.
indicator: add device specific icon code

Add device specific code for appindicator.