NF: context to run command in given directory

Useful when you want to use ``InTemporaryDirectory`` but you are still
debugging; do a temporary replacement with ``InGivenDirectory`` and pass
a known directory for the test, and look at the products there, before
swapping back to ``InTemporaryDirectory`` when the tests are fixed.
TST+DOC: docstrings and tests for InGivenDirectory

Funnily enough, InGivenDirectory was deleting the contents of the Given
directory, which is a bit error prone.  Don't do that, and add test
module to test behavior.
BF: use realpath to make directory name canonical

Getting travis build errors that might be to do with symbolic links
Merge pull request #148 from matthew-brett/temp-dir-debugging

NF: context to run command in given directory

Useful when you want to use InTemporaryDirectory but you are still
debugging; do a temporary replacement with InGivenDirectory and pass
a known directory for the test, and look at the products there, before
swapping back to InTemporaryDirectory when the tests are fixed.