Reformat error messages

Now every error message produced by Git::Hooks follow this pattern:

  [MODULE] TITLE

    BODY

<MODULE> is the name of the module where the error was detected. Usually
the name of a plugin module.

<TITLE> is a single line description of the error.

<BODY> is optional. It can carry extra details about the error. There is
always an empty line before and after it, and all of its lines are
prefixed by at least two spaces.
Implement the githooks.gerrit.comment-ok configuration

By default, when approving a review Git::Hooks simply casts a positive
vote but does not add any comment to the change. If you set this option,
it adds a comment like this in addition to casting the vote:

  [Git::Hooks] COMMENT
Fix Gerrit documentation URL
Print an error message when cannot POST to Gerrit
Do not vote on Gerrit draft changes

The patchset-created hook is invoked for normal changes as well as for
draft changes. However, since draft changes are normally visible only by
their respective owners the hook usually can't vote on draft
changes. Hence, Git::Hooks does not cast votes on draft changes.
Implement Gerrit's draft-published hook

The draft-published hook is invoked when a draft change is
published.

Since draft patchsets are visible only by their owners, the
patchset-created hook is unusable because it uses a fixed user to
authenticate. So, in this commit we make Git::Hooks exit prematurely
when invoked as the patchset-created hook for a draft change.

When the draft is published is a good time to perform all the checks
that should have been performed by the patchset-created. So, we make all
plugins that hook to patchset-create to also hook to draft-published.
Add REPOSITORY section to documentation
Implement githooks.nocarp configuration variable

By default all errors produced by Git::Hooks use L<Carp::croak>, so that
they contain a suffix telling where the error occurred. Sometimes you
may not want this. For instance, if the user is going to receive the
error message produced by a server hook he/she won't be able to use that
information.

Now the user can request no suffixes by defining the githooks.nocarp
configuration variable.