CQS - Quiz report generation & downloading

Features:

  - quiz report buttons are now functional
  - the report status is displayed in the tooltip
  - reports can be generated
  - their progress is tracked
  - when a report is generated, it is auto-downloaded
    - unless the user reloads the page before generation is complete
    - *NEW*: when reports r loaded, and we find out that some are being
      generated, the buttons actually show that just as if the teacher
      had just pushed the button in that page view
  - lots lots of tests, every single scenario is covered

Development updates:

  - helpers for testing stores and their actions
  - there is now a test environment initializer
  - grunt/connect server now supports downloading files from Canvas
    (e.g, proxies requests from /files/* with proper FRAMEORIGIN
    masquerading)
  - I18n.t() calls now provide (limited) support for Date parameters;
    the output is not quite the same as in Canvas yet
  - Backbone/JSON-API abstractions for parsing things without really
    caring
  - new, extended doc tags (JSDuck):
    - @needs_cfg: state the config parameter a method uses, or
      relies on, to function
    - @async: mark a method as asynchronous

Closes CNVS-14848

TEST PLAN
---- ----

  - go to CQS page
  - mouse over either the "Student Analysis" or "Item Analysis" buttons
    + verify you see a message saying they're not generated yet
    + click on one
      - verify you see a progress bar inside the tooltip, wait for it
        + verify the message changes, and you are prompted to save the
          CSV file

other things to try:

  - request a report generation
    + quizkly, before it finishes, reload the page
    + quickly, mouse over the button
      - verify that you see the progress bar just as if you had
        initiated the request on this page view
      - when it finishes, verify you do *not* get the Save prompt

  - try generating both reports at the same time:
    + verify you get a total of 2 Save prompts, one for each report

Change-Id: I1aec6c9e791de262ef87d028f2b432e921e6ea4a
Reviewed-on: https://gerrit.instructure.com/39855
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Trevor deHaan <tdehaan@instructure.com>
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Product-Review: Derek DeVries <ddevries@instructure.com>