Optimizations reduce large recursive find runtime by over 50%

These commits mostly avoid Path::Class hitting File::Spec repeatedly.

In my test case of finding all .pm files in @INC (with Path::Class::Rule) I saw a run time reduction of over 50%.