Keep recursion through ignore list within appropriate scope

Attempt to fix issue #275

The recursion in `filename_filter` has the side effect that it resets the ignore list in `scandir_baton` to the parent for the next file checked. This can lead to some files not being ignored when they should be, as per issue #275. This patch makes the ignore list recursion work on a copy of `scandir_baton`.

I have created this copy after `scandir_baton->level` has been incremented. I don't know whether this is correct.