Stanford rolling certificates support

This supersedes https://github.com/edx/edx-certificates/pull/5. I have gotten approval to merge from everyone verbally, I think, so I just need @jarv or @ormsbee or @nedbat to press the big green button for me (apparently, I no longer have push rights on this repo.)

This is my old PR message:
Most of this came out of Stanford's need to support the rolling
certification case.  Changes are for performance, robustness, code
quality and aesthetics of output. Everything here should be 100%
backwards compatible with the previously existing edx ceritificate
infrastructure.

* Features
 - optionally accept grades, designations, and certification date via
   xqueue from -platform
 - support course date ROLLING to stamp the current date onto the
   certificate in a generally accepted format
 - New font_for_string utility method allows dynamic selection of the
   best font for any arbitrary unicode string (i.e., names)
 - arbitrary text interpolation for 'with distinction', etc.
 - many more defaults can now be specified via env.json
 - verification and validation page generations are now optional on a
   global and per-course basis

* Performance
 - pre-cache all the fonts
 - pre-cache all the blank pages
 - re-use CertificateGen objects when two successive requests come for
   the same course id

* Aesthetics
 - alphabetization of imports
 - less noisy running under normal conditions
 - improved error reporting providing more context
 - shifted assumptions in valid and verify towards the open source
   community