Fixes #693 and #741. Export `gather` for easier extensibility.

This is my proposal to address #693 and #741, which will by proxy
fix https://github.com/gruntjs/grunt-contrib-jshint/issues/1, https://github.com/gruntjs/grunt-contrib-jshint/pull/9, https://github.com/gruntjs/grunt-contrib-jshint/pull/29.

/cc @shama

This path adds `gather(opts)` to the cli export which the intention of
allowing third parties to hook into the file resolution, including file
ignore logic.

`cli.gather` is only concerned with the follow opts:
- cli args (files to linted)
- ignores (as would be parse from .jshintignores)
- extensions (as would be supplied by --extra-ext cli flag)

Called these, it will return an array of file paths that should be linted.