Syncing: More robust error handling

This handles connection errors, auth errors, and other general problems
that arise and takes the appropriate actions for the sync status for the
system and the notification displayed.
Request sync when (un)favoriting a guide
OfflineGuidesActivity: Add empty list text
Fix viewing offline guides

We need to check if the cursor has valid data and always close it
afterwards.
GuideMedaProgress: Allow adding duplicate URLs
Offline guides: Display live images if possible

Otherwise the thumbnail image won't be downloaded until that guide is
being processed.
Fix syncing guide with missing intro image

The problem was twofold:

1. We were trying to download an image at the URL ".standard" which
   failed.
1. Once we fixed it, the progress was 0/0 in the DB so the progress
   button crashed because 0 is an invalid max value.
Hide notification on connection failures
Add TODO regarding updating progress
Register to receive sync status changed events
Guide sync: Remove outdated TODO
Add sync restart functionality

The issue was that favoriting multiple guides in a row resulted in sync
progress that wasn't correct. If the first guide takes an hour to sync,
any guide favorited before it finishes won't show up in the list or will
be taken into account for the progress because the sync adapter doesn't
know that there are more guides to sync. Once it is done, the sync
requests go through and start it so they will be synced eventually but
the progress isn't correct which is very misleading.