Extract a method ReferenceChange.get_subject().

Generate the subject from a separate REFCHANGE_SUBJECT_TEMPLATE rather
than directly from REFCHANGE_HEADER_TEMPLATE.  This is a first step to
generating better subject lines that depend on the change type.
Use separate subject templates for each change type.

This brings us a step closer to making the subject messages
internationalizable, by avoiding the assumption that the variation
between change types can be captured by expanding "%(change_type)sd"
into the past participle of the change type.

Leave change_type in the expansion values anyway, in case somebody
else is already using it.
Mention SHA1s in refchange subjects.

Aside from being convenient, this might help prevent some email
clients (e.g., gmail) from trying to group all updates to a branch
into a single thread based only on the fact that they have the same
subject.

Suggested by Matthieu Moy <Matthieu.Moy@imag.fr>
make the Reply-To field configurable

This introduces multimailhook.{replyTo,replyToCommit,replyToRefchange},
that can be used for multiple purpose:

- disabling the notification

- setting the Reply-To to a particular email address (e.g. send the list
  to <project>-commits@list.server.com, but set the Reply-To to
  <project>-devel@list.server.com)

- changing the default strategy (pusher for refchange, author for
  commit).

We use the same variable names for all these scenarios, with the magic
values "author", "pusher" and "none". It is safe because the email
address has to contain a "@" and avoids introducing too many variables
for the same purpose.
Improve some documentation related to the replyTo feature.
Set the default values for the reply_to options in Environment.

Overwrite them in ConfigEnvironment only if configured.
Always use value "reply_to" in the templates.

There is no need to distinguish between "reply_to_refchange" and
"reply_to_commit" in the templates.  Instead, always use value
"reply_to" and just set that value differently in the two contexts.

This also allows the interface of Change.set_reply_to() to be
simplified a bit.
Merge branch 'sha1s-in-subject'

Include short SHA1s in the email subject lines to discourage email
clients from threading unrelated messages together.
Merge branch 'reply-to'

Make the email "Reply-To" field configurable.
Introduce skipRefs and onlyRefs to limit the scope of the hook
don't try to iterate over NoneType

When the variable is unset, get_all returns None and not []. Iterating
over the result raises an exception.