Make sure download progress shows indefinitely after an error, and that closing it after that resets the error and the offline switch.
Retry button.
Made all download delegate methods optional and now check for them.
DownloadProgressDelegate is now DatabaseManagerDelegate. The AppDelegate now also conforms to two of the methods, allowing it to suppress any download button after the download finishes.
Make sure the height is right if the download view will be showing.
Reset offline setting on cancel.