Implement Path::asRealpath()

This method acts like realpath() but keeps on resolving non-existant parts
E.g. If there is a directory /usr/local and we have a Path referring to
/usr/local/non-existant, then the result is /usr/local/non-existant, and
not FALSE like in PHP.

Note that testing links on Windows does not work since there is no well
known link we can test for, and creating symlinks requires Administrator
privileges which the user (hopefully!) does not have. The test will be
skipped here, usually with "Cannot create symlink, error code(1314)" which
is ERROR_PRIVILEGE_NOT_HELD ("SeCreateSymbolicLinkPrivilege")
Always use forward slashes to make tests portable
Separate Windows root path tests from Un*x variants
Fix symlink detection
Fix test declaration
Add net.xp_framework.unittest.io.PathTest to test config "io"