Merge pull request #278 from swegener/for-upstream

read built-in config with continuation support
Fix segfault when no system tigrc is loaded

This fixes a segmentation fault in init_colors() when Tig is started
without loading system tigrc or built-in tigrc file, for example using:

	> TIGRC_SYSTEM= tig
Load built-in config when TIGRC_SYSTEM is defined but empty
Test the built-in config for syntax errors
Change key mapping syntax to support key combos

Wrap all symbolic key names in <> to avoid ambiguity. Similarly, ^f
becomes <Ctrl-f> (or <C-f>) and ^[f becomes <Esc>f (or <Escape>f).
Move index update and diff utilities to repo module
Remove unused variable
Tidyup tigrc(5) option descriptions
Unify view refresh checking
Auto-refresh views when changes are detected in the repository

This adds support for watching certain .git files and refresh views that
depend on them when they change. As a result the old mechanism for
auto-refreshing after returning from the shell has been removed.

Fixes #190
Fix line number reporting for configuration errors

Move tracking of line numbers into the IO layer instead of in the option
parsing code so that commands spanning multiple lines will not offset
the reported line numbers.
Make file-backed blob views refreshable
Mark the help view as refreshable
Automatically close empty stage views after refreshing
Improve error message for unsupported key combos

This makes the error message more understandable in the context of
upgrading from tig-1.x.
Add refresh-mode to only update after returning from a command

This adds support for this mode that was discussed in #190 and which is
similar to how refreshing was previous done.
Improve auto-refreshing of views to use various update info

This adds hooks in different parts of the update code which acts as
sources for watching for state changes in the views. As an example
index changes are now tracked in more detail and diffed to improve
updating of the stage, main, and status views.

It also registers watches for HEAD and references in the main and refs
view so that both views are refreshed after for example a branch is
deleted.
Don't complete any settings in the section column

It is only supposed to be used internally.
Change default keybindings

This implements part of issue #257 to ensure that Tig has a more
consistent default set of keybindings.

 - Lower-case keys are used primarily for view switching; and should
   always be non-destructive.
 - Upper-case keys are used for view-specific actions including
   user-defined commands.

Fixes #257
Show key mappings in the help view using the new syntax