Show text when downloading
Hide progress indicator if download fails
Save episodes in chunks (Fix bug 869812)

This saves podcast episodes in a crude-yet-simply-effective way to IndexedDB.
Retrieving the stored arrayBuffers from IndexedDB and assembling a new `Blob`
object from them SEEMS not to OOM the app on phones, though it still spikes
memory usage.

Also fixes some type hacks used previously.
Clean up episode model code
Clarify code and comments in episode model