Use internal guts when constructing Dirs from Dirs

When a list of directories passed to a constructor contain
Path::Class::Dir objects, we can use the internals of those objects
instead of concatenating and splitting them again with File::Spec.