Overhaul content-type handling

Overhaul content-type handling, making it configurable via page/proxy commands
as well as frontmatter with the 'content_type' parameter.

Now, users can set content type explicitly for their files in a number of
ways, or rely on automatic file-extension content types. Proxied files default
to automatic file-extension content types, but then fall back to the content
type of the resource they proxy to. There is also a bug fixed around correctly
setting content type inside send_file. Fixes #821.