Add infrastructure for the distributor concept.

The dbreps script acts as a central hub for report generation.  The
name of the report to be generated is given with the "-r" option, and
the site to be worked on with the "-s" option.

Each report is a module beneath "reports/" that implements a class
"report" subclassed from "reports.report".  See
reports/tests/onepage.py and reports/tests/multiplepages.py for
examples.

For each site there must be a section with that name in the
configuration file ~/.dbreps.ini (or any other configuration file that
is given by the "-c" option).

New options in these sections are:

- "host", "host-commons", "host-commons-user", "host-user": These give
  the name of the SQL server to connect to in general or in case the
  report requires a server with user databases or a copy of the
  Commons database.  For example, sensible settings for enwiki may be
  "sql-s1-rr", "sql-s1", "sql-s1-user", and "sql-s1-user".

- "userdb": This is the name of the user database where the reports
  should store and retrieve data.
Convert general.blankanontalks to the distributor concept.
Do not hardcode program name in usage message.
Add setup script.

For installation/update of the reports handled by the distributor
concept, execute:

$ sudo -u dbreps python setup.py install --user --install-scripts ~dbreps/bin
Use oursql instead of MySQLdb for the distributor reports.
Set stdout's encoding for tests.
Edit wikis with "skipmd5=True" to avoid Unicode errors.
Convert general.indefips to the distributor concept.
Convert general.linkedemailsinarticles to the distributor concept.
Convert general.uncatcats to the distributor concept.
Convert general.excessivesemiarticles to the distributor concept.
Move docstrings to the top of the modules.
Convert general.confirmedusers to the distributor concept.
Convert general.transusertemps to the distributor concept.
Convert general.crossredirects to the distributor concept.
Fix off-by-one error in multiple pages reports.
Convert general.unprotectedtemps to the distributor concept.
Convert general.noactionuserpages to the distributor concept.
Convert general.anononlyanons to the distributor concept.
Convert general.excessiveusers to the distributor concept.