Make refreshFailed a global, not a strategy field

This way it works no matter where we call catalog.refreshOrWarn
Set alreadyRefreshed if refresh was succesful
Add ignoreErrors to Refresh.OnceAtStart strategy