Rework download exception handling.

- Make it be consistent throughout the application.
- Make it so the caller of a module doesnt ever have to import
modules of the callee just to catch an exception.