The basis of changes I'd like to make to IO spec

- Str.IO gives an IO::Path that only does absolutifying paths *once*
- IO::Path gets a caching "isDir" and "exists" attribute
- IO::Path.lines/words open/close handle from IO::Path.path
- IO::Handle.lines/words give lines / words from current file position
- $*SPEC contains the appropriate IO::Spec::filesystem object
- IO::Path gets a $.SPEC from a given IO::Spec object, default to $*SPEC
- IO::Path.methods become wrappers around $!SPEC rather than $.SPEC

This should allow for better optimizations (e.g. doing rel2abs only *once*)
and for better resource usage (e.g having .lines/words close handles).
This should also make all filetest methods much faster.