Show error messages correctly
As a user I want to see actionable error in a useful spot in the app so I can act on them.
Two problems in one:
- Currently we're using Snackbar for this, even for background tasks run via Kotlin coroutines. Those coroutines might run while the Fragment is destroyed, which means the Snackbar has become untethered.
- All error messages are Snackbars, which can disappear. It'd be nice to provide a "retry" button that is always present for some errors so you can, for example, retry manually when you get Internet access. Auto-retry would also be useful.