Improves media uploading and notification; breaking change

Consolidates notifications to one per content item

Keeps track of what's been successfully uploaded.

DB Breaking: adds a dirty column to CastMedia.
Adds canSync() test before attempting to do such