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.
Removed extra overlays length check.

No reason to do that if we're doing it again 2 lines down.
Merge pull request #2811 from Ccomp5950/master

Code effeciency project: apc icon_update()