(maint) Improve relative path test reliability

Tests exercising external facts at relative paths create directories. They
were using the same dirname each time, and throwing an exception if the
path already existed or was recreated while trying to delete it. The
system operations seem like they aren't guaranteed to complete when
boost::filesystem::remove_all returns, so use unique dirnames for each
test.