Only refresh views that support it after running a shell command

Views that support refreshing are now annotated with the new
VIEW_REFRESH flag.
Abandon the %(prompt) when the user escapes it

This fixes %(prompt) to not access NULL from read_prompt() which would
result in '(null)' as the prompt argument.
Add support for specifying custom prompt for %(prompt)

The %(prompt ...) needs to be wrapped in quotes in order for
argv_from_string() to split the command arguments correctly.
Minor code tidyup