Add scanner based on git ls-files

Originally submitted at: https://github.com/wincent/Command-T/pull/95

This squashes two commits:

- https://github.com/pfhayes/Command-T/commit/ee0aea14775d6721f11605db2e35f4e0f4c36002
- https://github.com/pfhayes/Command-T/commit/aa061af5ecab0d7492392442ab1479de44eaf594

Signed-off-by: Greg Hurrell <greg@hurrell.net>
doc: update AUTHORS/HISTORY section

Add Patrick Hayes.
Abbreviate license header
Simplify require statements

No need to pull in "command-t/vim" as that gets pulled in from
"command-t/scanner/file_scanner".

Instead of "command-t/scanner/file_scanner", pull in
"command-t/scanner/file_scanner/find_file_scanner", which is our
superclass; as it was, we had an ordering dependency which relied on
some other file having required the superclass before we get evaluated,
which isn't good.

There's no need to pull in "open3" as the superclass is already doing
that.

Explicit is better than implicit and all that, but this is Ruby, land of
magic, and of slow require statements.
Apply minor tweaks to "git" file scanner

- use `ensure` to make sure that we restore the 'wildignore' setting in
  the event of an error
- kill unused `command` variable
- prefer single quotes over doubles
- change a `#select` + `not` to a `#reject`
doc: add info about "git" file scanner
Handle missing or unexecutable git binary

We need to trap for `Errno::ENOENT` otherwise a missing or
non-executable `git` binary will derails us.

The `stderr` check is only good for times when we were able to actually
launch the binary.
Merge branch 'pfhayes/git-ls-files' into next

Originally submitted at: https://github.com/wincent/Command-T/pull/95

* pfhayes/git-ls-files:
  Handle missing or unexecutable git binary
  doc: add info about "git" file scanner
  Apply minor tweaks to "git" file scanner
  Simplify require statements
  Abbreviate license header
  doc: update AUTHORS/HISTORY section
  Add scanner based on git ls-files