Add exception handling

If peep throws an exception, we want to know about it. Plus we want to
make it easy for you to tell us. Plus we want to make it likely you tell
us what we need to know. These changes do all that.

Fixes #59 

r?
What happened to `copy`? We need that in `_downloaded_filename()`.