Support for rendering from read-only locations

For Shiny Server, we want to be able to render an R Markdown document from a directory in which the rendering process has no write access. To make that possible, two supporting changes:

1. The `files_dir` used to render supporting files is no longer placed next to the input file and then copied alongside the output file; instead, `files_dir` is now an absolute path pointing to the files' final destination alongside the output file.
2. The intermediate files (`.knit.md`) can now be written to a caller-specified location rather than alongside the input file.