Scroll diff with arrow keys in log view

This commit introduces the VIEW_NO_PARENT_NAV flag and adds it to the
log view. This allows the scrolling commands to fall through from the
pager to the diff when the diff is viewed in the log mode.

Signed-Off-By: Kumar Appaiah <a.kumar@alumni.iitm.ac.in>
Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Crop text when title-overflow is enabled

Limit the length of the title text if less columns are available when
drawing the title. This fixes a glitch introduced with the original
title-overflow patch, where the title text would wrap to the next line
when rendered.

Improve the rendering when only part of the "non-overflowing" title text
is displayed by showing the '~' character to indicate that the text was
cropped.

Fixes #166
Only set LINES and COLUMNS environment variables for external commands

Setting the LINES/COLUMNS environment variables to a constant number
breaks ncurses' getmaxyx() logic, so dynamic resizing doesn't work as
pointed out by Marcel Partap in a comment to the fix for issue #151
(https://github.com/jonas/tig/commit/f0ad1f74#commitcomment-3528715).

As a work-around, only set LINES/COLUMNS when forking Git processes. This
way diff stats will still use the whole terminal width and resizing works
as intended.

Fixes #109
Add log_select function to find commit from context in log view

This commit introduces and uses the log_select function to find the
correct commit in the unsplit log view. In the log view, if one
scrolls down across a commit line, the current commit (as displayed in
the status bar) gets updated, but not so when scrolling upward across
a commit. The log_select function handles this scenario to to the
``right thing''. In addition, it introduces the log_state structure as
the private entry of the log view to hold a flag that decides whether
to re-evaluate the current commit based on scrolling.

Signed-off-by: Kumar Appaiah <a.kumar@alumni.iitm.ac.in>
Display correct diff the context in split log view

In the log view, when scrolling across a commit, the diff view should
automatically switch to the commit whose context the cursor is on in
the log view. This commit changes things to catch the REQ_ENTER in the
log view and handle recalculation of the commit and diff display from
log_request, rather than delegating it to pager_request. In addition,
it also gets rid of unexpected upward scrolling of the log view.

Fixes GH #155

Signed-Off-By: Kumar Appaiah <a.kumar@alumni.iitm.ac.in>
Revert "Scroll diff with arrow keys in log view"

This reverts commit 888611dd5d407775245d574a3dc5c01b5963a5ba. This is
because, in the re-engineered log view, scrolling the log with the
arrows now updates the diff in the diff view when the screen is
split. This resembles the earlier behaviour, and is also what users of
software like Mutt (which uses the pager view concept) would expect.

Signed-Off-By: Kumar Appaiah <a.kumar@alumni.iitm.ac.in>

Conflicts:
	tig.c