Improved refreshing framework. Now supports restarting refreshes, allows child classes to indicate if a refresh should be performed, and defines behavior for what happens when a listener is unregistered while a refresh is in progress.