Add support for DirectoryIterators

The current SplFileInfoPatch does not work with DirectoryIterator and its children, because DirectoryIterator requires that the first constructor argument is a directory not a file. This PR adds a check to SplFileInfoPatch that will call the parent constructor with a directory instead of a file when required.