Add command-line option for starting in refs view

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
Signed-off-by: Jonas Fonseca <jonas.fonseca@gmail.com>
Fix installation directory permissions

Use `install` instead of `mkdir -p`.
Improve use_scroll_status_wclear comment
Handle binary files matches reported by git-grep
Add view-split-width setting for controlling vertical splits

Orthogonal with view-split-height, the new options allows to configure
how the terminal is split between the two views, defaulting to 50%.
Requested by Ralph Amissah.

This also fixes the positioning of the cursor to be on the last column
of the active view.
Bind K and J to previous and next

This means you do not have to move your fingers away from the keyboard
(to the arrow keys) to navigate the right an left columns in split main
& diff view, and you do it in a similar (vim familiar) way for both
split windows.

Suggestion and above explaination by Ralph Amissah.
Expose settings holding the filtered command line arguments

This allows to change the filtering arguments at "runtime". For example,
the following binding allows to select a branch in the refs view for
filtering in the refs view:

	bind refs @ :set rev-args = %(ref)

Fixes #306
Add workaround for git pretty.format settings that break the log view

This overrides any pretty.format setting that contains color definitions
to use the 'medium' format. The fix adds the setting 'log-options' for
implementing the workaround. The option can be configured in `tigrc` and
works similar to `blame-options`. Finally, in order to test the feature
the semantics of `:toggle <args-option>` (note no arguments) has been
changed to simply clear the entries in the <args-option>.

Fixes #225
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.
Improve error reporting for :set commands in the prompt
Improve view reload after :set commands

This fixes cases like `:set commit-order = date` to reload log-like
views.
Force --topo-order when graph is enabled and no commit order is set

This is what `git log --graph` does to ensure that parent commits comes
before child commits. The test case is based on the example provided
by Benjamin Bergman in issue #238.

Fixes #238 and Debian bug #757692
References #300