Add submodule tests
blame: fix invocation of diff for line tracking

The argument to `git diff` is spelled "--no-ext-diff" not
"--no-extdiff".  This allows line tracking to work instead of causing
`git diff` to spit out its usage on stderr.

Signed-off-by: John Keeping <john@keeping.me.uk>
completion: don't use _tigcomp for filenames in blame

_tigcomp() unconditionally appends a space to each completion result,
which breaks completion when trying to complete a path with a directory
component by forcing the user to go back one character after each
directory is completed.  Additionally, only one level of tree is printed
so completion within directories only works thanks to readline's default
completion.

Change this to handle the completion of filenames within the script so
that we can append a space or slash as appropriate for files and
directories and complete within subdirectories be detecting the prefix
to use with `git ls-tree`.

Signed-off-by: John Keeping <john@keeping.me.uk>
Show more main view info for the submodule tests
Make the submodule test URLs relative
Fix display of conflicts in the main view when 'show-changes' is enabled

The main view showed both staged and unstaged changes, but should only
show unstaged changes for the unmerged file.
Add tests for the grep view

This also fixes an off-by-one error in how the line numbers are
displayed and shows a message if no match is found.