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.)
Ah. So, this goes back to what I said way back in the opening comment on this PR:

> (By the way, it's kind of confusing how the Config object is called "configHelper" in some places in cli.js.)

See, `configHelper` actually IS the base config object. If you look at where I'm reading `options.ignore`, I'm not accessing the property 'options', that's just what I named the parameter. It's the same Config object as configHelper. I copied what was being done elsewhere, but I'm still confused why that instance of config is referred to as a "helper" in the main file.