Fix path related tests

The os.path replacement is now class based, and merged with temporary
home in FakeSystem.
In test_valid[ation].py I changed paths to use os.path.join and
os.path.realpath, this makes the paths adapt to the host system instead
of assuming POSIX paths.