[indie]: Rewired compilation logic so that ...

... individual students can trigger worksheet generation

In indie mode,
  1. graded responses for a worksheet should be created only on payment
  2. there is no need to compile individual worksheets as questions are
     shown one by one from the vault/ itself

In uni (non-indie) mode
  1. publishing a quiz creates only an abridged version of the worksheet
     for students
      - this is to enforce only one way of uploading work - through
        the mobile app
  2. QR-coded worksheets are now generated only for in-class exams
Minor correction in trigger.click()
Quiz::assign_to should trigger TeX writing and compilation as necessary
New method to get PDF download path for a worksheet
 minor syntax error fix
Tweaked course listing for students ...

Students can now see content of pre-made courses ( basically quizzes ).
Next step would be to let them
  1. self-subscribe to quizzes
  2. pay to grade
Allow passing a callback to monitor.update() ...

How we update when the queue is ping-ed will depend on the context.
Hence, let developers define their own context specific update
functions.

Only constraint is that the function should take only one argument -
that is the json returned by ping/queue
Forgot to add quiz builder partials in indie layout
Don't re-write TeX if object has already been sealed and written
[big one]: Make worksheets for all previously uncompiled quizzes in a course for a student ...

Tied up loose ends plus tightened the UI.
This commit incorporates many changes in different places - all of which must
work together in the indie offering
Minor 'incorrect variable' bugs fixed
Maintain full list of quizzes in a course ...

... including those that were previously - but no longer are - part of
the course

Maintaining historical data will give all access to quiz results/data
irrespective of changes in course composition
Merge branch 'temp'