fetch: delete tempfile when download fails; fixes #45

- When a download attempt returns an HTTP error code (403, 404, 500),
  delete the temp file that was created prior to attempting the
  download
- Combine the call to File::Temp->new with the options hash that was
  passed to that method