config: exit non zero on non-existent config option (issue4247)

When running 'hg config no_such_option', hg exited with a
zero exit code. This change now exits with a 1 if the
config option does not exist.

--HG--
branch : stable
i18n-pt_BR: synchronized with 0c838e7459a5

--HG--
branch : stable
repoview: fix typo in repoview.changelog

Incidentally, this avoids the changelog cache being invalidated each time
it's accessed on a repoview.

On a filtering experiment on a repository the size of mozilla-central,
this makes a significant difference:

Before, running hg log -l 10 --time with about 8k changesets filtered out:
time: real 1.490 secs (user 1.450+0.000 sys 0.040+0.000)

After:
time: real 0.540 secs (user 0.530+0.000 sys 0.010+0.000)

--HG--
branch : stable
help: only call doc() when it is callable

`hg help -k` on my machine was aborting because the hg-prompt extension
was inserting a string and not a function into help.helptable and help
was blindly calling it.

This patch changes keyword searching to be more robust against
unexpected types.

--HG--
branch : stable
i18n-ja: synchronized with 0c838e7459a5

--HG--
branch : stable
merge with i18n

--HG--
branch : stable
i18n-pt_BR: synchronized with 6a8b8efb0641

--HG--
branch : stable
merge with i18n

--HG--
branch : stable
Added tag 3.1.1 for changeset 5dc91146f353

--HG--
branch : stable
Added signature for changeset 5dc91146f353

--HG--
branch : stable