do not change current working directory while evaluating files
this makes the i/o part of the evaluator thread-safe. for safety, assert absolute paths in IoUtils::exists(). on the way, i "stole" some code i wrote for KDE. there have been no copyright-worthy contributions from others to it, so this is legal.