Add config.h as a dependency for all object files

This fixes the dependency defined in config.make.in that was broken when
source files were moved to src/ folder to trigger a rebuild after
running `configure`.
view: make options private to each view

This enables options to be toggled individually for each view and
effectively prepares for fixing issue #222 and adds rudiment support
for toggling the commit ID (issue #89).
blame: switch to use view_column_draw
grep: use column-based drawing
grep: allow to toggle whether to group by file name
view: add common utility for generating column text
keys: rename struct key_input to struct key
prompt: extract default edit keybindings to separate method
keys: prepare to read multi key combos
prompt: introduce struct input to hold the context
prompt: expose API to incrementally receive key events

This API will allow to read key combos (issue #272 and issue #67) and
add support for incremental search (issue #5).
display: correctly recognize Ctrl-y as a key
keys: rename key_input_to_unicode to key_to_unicode
view: replace line user_flags with no_commit_refs and commit_title flags
diff: move diff stat addition to a common function

Signed-off-by: Kumar Appaiah <a.kumar@alumni.iitm.ac.in>
diff: move diff stat drawing to a common function

Signed-off-by: Kumar Appaiah <a.kumar@alumni.iitm.ac.in>
log: colour the diff stat

This commit adds custom log_read and log_draw functions that utilize
the diff stat drawing functions from the diff module. The absence of
the triple hyphen separator prevents direct usage of the diff drawing
functions.

Signed-Off-By: Kumar Appaiah <a.kumar@alumni.iitm.ac.in>
Switch log, diff and stage views to use column-based draw backend
log: add support for --graph
Add bindings for `!` to delete branch and drop stash

Fixes #133