Fix "--exclude" argument to work correctly with relative paths

You can now use relative directories in --exclude arguments, even if you call `parallel-lint` from outside the project directory.

Before:
```$ bin/parallel-lint --exclude vendor /some/other/path/```
... would not exclude "vendor" sub-directory in "/some/other/path/", because it would only check in current working directory (cwd).

After:
```$ bin/parallel-lint --exclude vendor /some/other/path/```
... now correctly excludes "/some/other/path/vendor/" directory

Excluding absolute paths still works too.

I also extended \RecursiveFilterIterator instead of implementing \RecursiveIterator, which already implements some of the needed methods.