fix opts reference issue when renderFile is rapidly called async

the local opts somehow references the same object if `renderFile` is called asynchronously with different `opts` args. this causes the very last `opts` arguments to be passed into the compiler for every single call, instead of each discrete set of arguments. we need to deep clone the object to break the reference.
Merge pull request #45 from joshrowley/patch-render-file-opts

fix opts reference issue when renderFile is rapidly called asynchronously