prompt: move report() call from argv_format() to call site

The two other callers of argv_format() already emit their own error
message.
prompt: refactor the jump-to-commit implementation

This moves the "not-supported" error message from run_prompt_command()
to the view_driver() where those messages usually lives.
prompt: move code to new prompt module

This creates a new prompt module with the UI code from the display
module as well as run_request_command() from tig.c. It also introduces a
new open_prompt() method which is called when the user opens the prompt.
prompt: pass argv parameter to run_prompt_command
prompt: allow search patterns with spaces in them

For example: bind stage D :/^diff --(git|cc)
prompt: introduce a macro for listing all enums
prompt: refactor enum name utilities

This refactors enum_map_name() into enum_name_ncopy() which takes a
buffer to copy to. The old behavior is still available via
enum_name_static().
prompt: add file-filter option

This exposes the internal file filter option as part of the list of
external options but without making it configurable via ~/.tigrc. The
main reason is to avoid having to special case option toggling in the
prompt code.
prompt: introduce :toggle command

This moves most toggle actions to use :toggle <option-name>. This new
:toggle prompt command enables to manipulate all the current options
while avoiding having to create a separate toggle-* action for each
option.  To achieve this the :toggle command changes behavior based on
the type of the option that is toggled:

 - For bool and enum options it works the similar to how toggle-*
   actions works today.
 - For argument array options (e.g. diff-options), it permits to
   append/remove one or more arguments (similar to how
   toggle-ignore-space works).
 - For int and double options it allows to increment and decrement the
   value (e.g. author-width).

Bindings has been added to tigrc to stay backwards compatible.

Fixes #69