Separated icon loading from refresh

Icon loading was separated from refresh so that changes to hover_text
that do not affect the icon graphic won't reload the icon. Proposing a
rename of the set_icon() method to update() for consistency with the
other public methods of start() and shutdown().