Add TODO
Internal: Remove the stray "Pragma:" header the right way.

It was coming from the default session_cache_limiter().
Fix bonehead error: Don't send HTML after downloading a paper!

Can't believe this. Browsers are really forgiving (they ignored data
after the Content-Length: bytes were transmitted; at least I think
that's what they did).

This bug was introduced due to an API change.
Internal: Rename paperStorageResult to document_result.

And allow an associated document storage ID, to be used for attachments.
Internal: log() generates sensible messages even if $paperId is an object.

I guess we're passing in a paper row somewhere. Static typing would help.
Content-disposition: filename requires a quoted string.

And Chrome, bitch that it is, is going to start requiring a quoted string.

Also, when downloading a filename with slashes, tell the user agent only
about the final filename component.
DocumentHelper: No mimetypes == any mimetype accepted.
Internal: Cleaner remove-document Javascript.

Will generalize to attachments. Also, call parse_paper_options more.
Bug fix: Show options even if there are no topics.

This was a bonehead bug in 8dddbba9 or thereabouts.
Show the Override deadlines checkbox in bold if it's required

and in grey if it's not known to be required at render time.
Support attachments options.

An attachment option takes any number of uploaded files of any type.
Frequent request.