Fix staged view when file called "HEAD" exists

Staged view could not show staged files correctly when a file called "HEAD" exists in git root directory.
Fix diff-options to only be considered for the diff view

This allows to put the following in ~/.tigrc to have richer merge diffs:

	set diff-options = -m --first-parent

and still have meaningful revision graphs.

Fixes #228
Don't open blame view for untracked files in the status and stage view
Improve opening of blame view from the stage view

Jump to the line number based on the current chunk and extract the file
name when in multi-file stage view.
Update %(branch) to point to current branch in the main view

Fixes #223
Fix log view to handle repositories containing a file named HEAD
Only refresh views that support it after running a shell command

Views that support refreshing are now annotated with the new
VIEW_REFRESH flag.
Abandon the %(prompt) when the user escapes it

This fixes %(prompt) to not access NULL from read_prompt() which would
result in '(null)' as the prompt argument.
Add support for specifying custom prompt for %(prompt)

The %(prompt ...) needs to be wrapped in quotes in order for
argv_from_string() to split the command arguments correctly.
Minor code tidyup
Fix graph rendering of staged and unstaged changes

The staged and unstaged changes was added using a stack allocated
`struct commit`. Since the commit ID was referenced from `struct graph`
via a pointer, the graph ID would change when both staged and unstaged
changes commits was added in the main view due to `graph->id` pointing
to an old stack allocated value. This would lead to the following graph:

    ● Staged changes
    ●─╯ Unstaged changes
    │ ● [master] [origin/master] [origin/HEAD] Minor code tidyup
    │ ● Add support for specifying custom prompt for %(prompt)
    │ ● Abandon the %(prompt) when the user escapes it

Fix the graph rendering by changing `graph->id` to be a buffer and copy
the commit ID to make it resilient to stack allocation.
Move test-graph tool to the test folder
Move default keybindings including shell commands to external tigrc file

The tigrc file is install to ${sysconfdir} by `make install`. To ignore
the default keybindings and load a different set of keybindings, for
example keybindings that do not allow to run commands that modify the
Git repository, use something like:

	TIGRC_SYSTEM=~/.tigrc.safe tig

This also removes the built-in `git gc` keybinding, which was never
really that useful other than scaring new users.

Fixes #235
Add tigrc copy as a fallback inside the binary
Move default color settings to tigrc
Move default settings to tigrc

Add all default values for settings to tigrc with documentation for each
of them.
Delete contrib/tigrc now obsolete by tigrc
Move source files to src and include folder
Move enum definitions to new types module
Move Git data formatters and parsers to util module