Certificates: URL endpoint for cert gen

* API endpoint for certificate generation, an authenticated  post with course
  id requests that grading be carried out and a cert generated for
  request.user in that course, using the usual grading and certificate
  machinery (ie, it does not imply whitelisting, though whitelists and
  blacklists will be respected)
  - Logs each request as it comes in
  - Calls xq.add_cert() and consequently, does grading synchronously on
    this app host and then queues request for certificate agent.
  - example usage:
    ```
    curl --data "student_id=9999&course_id=Stanford/2013/Some_Class" http://127.0.0.1:8000/request_certificate
    ```

* Studio advanced setting added, "certificates_show_before_end", which
  determines whether a course should permit certificates to be downloadable
  by students before the coures's end date has passed.
  - Modifications to dashboard view and templates to allow display of
    certificate download links before course has ended.
    (XXX: may declare failing students as failing before the course has ended.)
  - To test, turn the setting on in a course which hasn't ended yet, and
    force certificate generation for a student, then check their
    dashboard.
Certificates: 'Grade Me' YAML file

* Sample HTML and javascript to show how you might integrate the
  /request_certificate endpoint into a course.

Co-authored-by: Joe Blaylock <jrbl@jrbl.org>
Merge pull request #2533 from edx/jrbl/certs_request_cert_endpoint

/request_cert AJAX endpoint