Respect the user's cache.path settings if present

This pull request changes the implementation of `render()` to check if a user has already configured the `cache.path` used by knitr. In case the user has done so, the value is left as it is. In other words, `knitr_cache_dir(...)` is not called.

I changed the implementation to make `rmarkdown` more suitable for batch processing. One of my requirements is to have a central cache directory that I can automatically clean up regularly to ensure it does not grow past a certain size. With cache directories all over the filesystem, this task is significantly more complicated.

I hope you accept the pull request as it does not change the behavior of `rmarkdown` but merely makes it aware of a user-defined settings.
The default value for the `cache.path` option is `cache/` instead of `NULL`: https://github.com/yihui/knitr/blob/master/R/defaults.R#L58 So if you use `if (is.null())` as the test condition, it will change rmarkdown's old default behavior (`is.null('cache/') == FALSE`). Perhaps `if (identical('cache/', knitr::opts_chunk$get('cache.path')))` instead?