Initial git-grep support

Some problems:

- :Rerun doesn't work, since git-grep expects its query to be last, so
  flags can't be appended.

- Really hard to test. Even with an initialized git repo, git-grep only
  catches added files.
Attempt to fix bug with mismatched proxy lengths

Searching for the first pattern may have been failing due to the cursor
not being in column 0.
Spec fixes
Extract Command object
Make ftplugin utilities more flexible
Support for a list of command types
Rename "command_types" to "backends"