SystemTools: use PathExists where appropriate
The Touch
method should care about existence and directory creation
should also be guarded against unreadable paths as well. In addition,
fix a path existence check which should have been updated before.