Add second check for ignored items (after stating the fs)

When deciding if an item should be ignored, it is helpful to know whether it is a file or a directory. Delaying the check after we have the stats information would mean unnecessary stat calls for those items that can be ignored based on the path.

If `options.ignored` is a function with two arguments, it will be called twice for each new item - once without the stats object, then again once we have the stats information.

If `options.ignored` is a regular expression or a function with a single argument, it will be called once.

Closes #51