Add caching for icon lookups in menu items. Two new fields are added to
the menu item struct:
- icon_surface: cached icon surface loaded from icon_name
- icon_lookup_done: tracks whether icon lookup has been attempted
The icon is now looked up once and cached, rather than performing
filesystem access every time the menu is drawn. The cached surface is
properly cleaned up when the menu is destroyed.
Co-authored-by: Ian Fan <ianfan0@gmail.com>
Co-authored-by: Nathan Schulte <nmschulte@gmail.com>
Signed-off-by: Felix Weilbach <felix.weilbach@t-online.de>