Allow non-standard tags to occupy more space when subject is short.

When there are too many tags to display we try to overlap only up to
half of the space for the subject.  When the subject occupies less than
half the space allotted to it, the tags can be displayed directly after
the subject.
Configurable open URL and open part commands.
Better history behaviour for open part / URL commands.

Use the variant of text entry which starts off editing the last string
in the history, and preseed the configured or default command into the
history.  Previously we started the text entry with an initial string
equal to the last string in the history, so pressing up to go to the
previous history entry would appear to have no effect.

Use separate histories for the two commands as they can now be
configured differently.
Fix quote_arg function.

The empty string was not quoted and the set of shell special characters
was missing { | }.
Add predicate for word splitting like Unix shell.
Use shell word splitting for open part/URL command.

This allows running commands with arguments on the part file or URL.
We have to disable path completion for the prompt, as it does not
understand shell-like command syntax.
Run open part/URL command in background if suffixed by '&'.
Leave curses when running open part/URL command in foreground.
Redirect stdin/stdout/stderr when running in background.
Use shell word splitting for all configured commands.

Perform word splitting on configured commands and ensure each word is
quoted before passing to the shell.

Use "exec" builtin to reuse the shell process, but also in case the
command happens to have the same name as a shell builtin.
Automatically perform extra round of shell-quoting for ssh commands.

This requires a configuration update for users who run notmuch remotely.
Delete obsolete ssh_escape script.
Use /dev/null for input of subprocesses whenever possible.
Use consistent whitespace in sample configuration file.
Configurable polling period in index view.
thread/pager: Show/hide any part with 'Z'.

'z' could previously show/hide unsupported content parts, except when it
was taken to cycle alternatives.  This generalises 'Z' to show/hide any
part.