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 patch adds `gather(opts)` to the cli export with the intention of
allowing third parties to hook into the file resolution, including file
ignore, logic.

`cli.gather` is only concerned with the following opts:
- cli args (files to linted)
- ignores (as would be parse from .jshintignores)
- extensions (as would be supplied by --extra-ext cli flag)

It would return an array of file paths that should be linted.