Update: Factor ignores out of Config

Fixes #958.

I thought that using the term "ignores" everywhere and never "exclusions" would make things more consistent and less confusing. The only confusing part now is where `isExcluded` is changed to `ignores.isIncluded`, but I think `ignores.isIncluded` makes sense by itself, it's just an odd difference. Open to suggestions.

All of the logic remains the same, but now instead of calling `Config.getExclusions` for an exclusions array and doing the matching logic in cli.js, you load up `Ignores` with a config object and then call `Ignores.isIncluded` which encapsulates the matching logic. (By the way, it's kind of confusing how the Config object is called "configHelper" in some places in cli.js.)
> I think we should just pass `options` rather than `config`. We don't need anything else.

I'm confused by this. Do you just mean the naming, or that we should cherry-pick just the options IgnoredPaths needs and put them on a new object?

> Also, I don't like constructors doing file access. That's why I mentioned having a static `load()` method in my earlier comment.

Sure thing, I'll change it around.