URL endpoint for requesting certificate generation

* API endpoint for certificate generation, a post with student id and
  course id requests that a cert be generated for that student for that
  course, using the usual grading and certificate machinery (ie, it does
  not imply whitelisting, though whitelists and blacklists will be
  respected)
* 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
  ```
* TODO:
  - make grading calls into a celery task so they happen asynchronously
  - needs tests
  - needs pep8/pylint
Dashboard refactoring for rolling certificates

* Dashboard view refactored to prevent database accesses for
  non-validated user accounts.
* Studio advanced setting added, "certificates_show_before_end", which
  determines whether a course should permit certificates to be
  downloadable by students before the course's end date has passed.
* Modifications to dashboard view and templates to allow display of
  certificate download links before courses have ended, while being
  careful not to 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.
* TODO:
  - needs tests
  - needs pep8/pylint