Fix: skip dot files and ignored dirs on traverse (fixes #1077, related to #814)

This commit solves several problems.

1. dot files/dirs are ignored now on traverse, as discussed in #1077
2. Duplicated minimatch use removed. Now always use `ignoredPath.contains()`
3. If directory is in ingnored list, nested traverse is not performed. Related to #814, make sense for big projects and projects with many dependencies in `./node_modules`.

Also added basic traverse tests.

Performance bonus (run on nodeca project with all modules / subprojects installed):

__before__

```
$ time make lint

real	0m1.859s
user	0m1.620s
sys	0m0.236s
```

__after__

```
$ time make lint

real	0m0.823s
user	0m0.432s
sys	0m0.044s
```
You need to specify a category for debug, you can't just use it straight. Add this in the helpers section. 

```js
debug = debug("eslint:traverse");
```