git-commit-mode: show better usage information

Show better usage information to the user; inform about "C-c C-c"
and "C-c C-k" instead of the generic "C-x #".  We have to use a
timer because the server displays its message after the mode has
already been enabled.
remap server-edit to git-commit-commit
remap {,ido-,ibuffer-}kill-buffer to git-commit-abort
remove server-kill-buffer from kill-buffer-hook

Remove `server-kill-buffer' from `kill-buffer-hook'.  Otherwise this
would prevent sending our improved abort messages to the clients.
add new git-commit-kill-buffer-noop to kill-buffer-query-functions

This is necessary to protect users from bypassing `git-commit-abort',
using something like `UNKNOWN-kill-buffer' or `M-x kill-buffer'.

We do not call `git-commit-abort' here because this special hook is
about aborting a kill, not about creative killing.  Since be now show
suitable about the key bindings, users will likely stop attempting to
kill using some non-standard way fairly quickly, or in case they use
some `UNKNOWN-kill-buffer' command, inform us about the issue.
git-commit-auto-mode-{enable,disable,regexps}: new fns, var

Add new functions `git-commit-auto-mode-enable'
and `git-commit-auto-mode-disable, and variable
`git-commit-auto-mode-regexps'.
git-commit-auto-mode-enable: don't call on load and autoload

This is a somewhat controversial issue.  Some think that simply loading
or autoloading a library should prepare its modes for use.  Others like
me think that users should have to do that explicitly.  It might be a
bit annoying that an additional step is required to use the library and
its modes - it would be more annoying to have to do something *not* to
use it.

The argument "But why would they install it if they did not want to use
it?" does not apply it - Magit does force Melpa users to install it,
even though `magit-log-edit' could be used instead.  Magit has to ensure
one of the commit modes is installed and does so by making the preferred
one a dependency.  `package does not support optional dependencies or
even dependency alternatives.
Merge branch 'pr/tweaks'
Revert "git-commit-auto-mode-enable: don't call on load and autoload"

This reverts commit eff561236e01102232a1c2bb4a1840175ead1368.
Revert "git-commit-auto-mode-{enable,disable,regexps}: new fns, var"

This reverts commit c0f85b63cc4e63ea3a787c109ce6d32935ffa2fb.
git-commit-auto-mode-alist: define as noop

This avoids problems when users don't update magit and git-commit-mode
at the same time.
setup ert tests
add ert tests for pseudo header position
test that comments aren't saved in message history
put all temp buffers for tests in git-commit-mode
non-comment AND non-empty line is start of message

In case there are blank lines between comment blocks, as happens after
merge+conflict, git-commit-find-pseudo-header-position should skip over
the blank lines too.
don't save comments in commit message

Only save and restore up to the pseudo-header position.
README.md: remove obsolete note about magit-log-edit-mode
Merge branch 'pr/no-save-comment4'
Merge branch 'pr/test-msg-hist'