Extract config.get_mailer(...) to make it available to hook writers

Currently, wrapper Python scripts like the example post-receive which call
git_multimail.run_as_* with a mailer argument have to hardcode the
mailer, or cut-and-paste a not-so-trivial piece of code from
git_multimail.py. Extract this piece of code to make it available to the
wrappers.
Change get_mailer() into a module-level function.

The Config class shouldn't decide policy.
Rename function get_mailer() to choose_mailer().

This is more consistent with an upcoming choose_environment().
README: Document that smtpServer can also specify the port to use.

This is a useful feature of Python's smtplib, so document it.
post-receive: Provide more examples of how to configure the mailer.
Pass mailer constructor arguments by keyword.
Merge branch 'choose-mailer'

* Provide a function choose_mailer() to users who are doing their
  configuration via Python code.

* Document that the SmtpMailer port can be specified.

* Expand the examples in post-receive.
Allow an arbitrary command to be passed to the SendMailer constructor.
Allow an arbitrary program to be specified as the sendmail command.
Add a program that can be used as a fake sendmail.

Set it as the default sendmail program for the test repo.
When testing, run git-multimail without the --stdout option.

This tests a bit more of the "production" code.
Merge branch 'sendmail-arbitrary-command'

* Allow an arbitrary command to be configured for the SendMailer
  (rather than hardcoding the program to "/usr/sbin/sendmail -t").

* Add a script, fake-sendmail, that only writes the messages to
  stdout.  Configure tests to use that script instead of the extra
  --stdout option.