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.)
What I'd like is:

```
function IgnoredPaths(patterns) {
    this.patterns = patterns;
}

IgnoredPaths.load =function(options) {
    // return new IgnoredPaths
};

IgnoredPaths.prototype.contains = function(filepath) {

};

Module.exports = IgnoredPaths;