Multi-certification initial version

* Enables a new manage.py target, issue_certificate_multi, which allows
  an entire class to be certified at one go.
* Introduces two new certification-process configuration file formats,
  which allow (after initial testing), fire-and-forget running of
  certifications.
* Improved docstrings and other built-in help.
* Multi-certification runs with the wkhtml-based PDFKit only; xhtml2pdf
  is deprecated.
* CourseCertificate entries in the database are created on-the-fly from
  the class certificate conditions description file.
* Students are assigned to various certification conditions based on the
  contents of the CourseStudentScore table and the description in the
  class certificate conditions description file.
Improve context passing for certificate gen.

* Improve mechanism for passing in scoring information to the
  PDF generation task.
Cleanups addressing Jason's review comments

* globals should be marked as 'global'
* Use get_or_create rather than reinventing the wheel
* More sensible string default for single user flag
Enable celery.delay for PDF generation

* Also bug fixes for data correctness when running over an entire class
  with possibly-corrupted Aggregation table.
Document additional system-level dependencies

* Record need for several system packages (libicu48, libicu-dev,
  wkhtmltopdf, xvfb), as well as the need for a running X server.
Merge pull request #2450 from Stanford-Online/jrbl-working_multi_certs

Bulk certificate generation (master)