Storage changes

- Store files with hash only for filename, rather than including zip
  flag and filename
- On retrieval, check for hash and fall back to old format
- Don't store content type with file, since it's not guaranteed to be
  universal
- Serve single-file attachments via files.zotero.net as well, with
  proper content type forced via an .htaccess file
- All files should be viewed using /file/view (via files.zotero.net) and
  downloaded using /file (via a presigned S3 URL)
- Downloaded files include the correct content type from the requested
  attachment item but won't necessarily contain the proper filename,
  since it's available in the item's metadata. We could potentially use
  Content-Disposition, but it's a mess, so I'm probably not going to
  bother unless there's demand. The Zotero client itself has never cared
  about the download filename.