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.