Move filetest operations to IO::Path

This should make multiple filetests on the same IO::Path a *lot* faster,
as existence is only tested *once* and the absolute path needs only to be
created once (instead of on every file test).  Too bad we can't make
$!abspath a native str yet.