Add retry logic to loading systems
If the api ever fails to respond for reasons of server load, rate limiting, internal error, timeout, etc. We should present the user with the option to retry the request, rather than just fail silently and display a blank screen or an infinite loading spinner.