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'