Code effeciency project: apc icon_update()

caching the icon states instead of creating them each time
checking to see if any icon_state or overlay changes and only
applying the ones that do.