Draft-State Quizzes - "Save It Now" should work

Closes CNVS-13730

This patch enables the (re)publishing functionality in DS mode. The
issue was that the internals were relying on "workflow_state_changed?"
to be truthy in order to re-publish the quiz, which is not the usual
case in DS where the quiz's WState is always "available" and doesn't
really change between authoring updates.

A side change: Canvas::DraftStateValidations is now covered and
responsible for adding the required validations to classes that mix it
in.

TEST PLAN
---- ----

  - create a quiz with draft-state on
  - add a question
  - save the quiz, publish it
  - open a tab on the quiz show page and keep it
  - in another tab, edit the quiz, modify the question, hit "Update
    Question" and switch back to the show quiz tab
  - refresh the page, verify you get the "Save it Now" button
    - push the button
    - refresh again
    - verify that the button no longer re-appears, and that your changes
      were actually published (you can do this by taking the quiz as a
      student)

Change-Id: Idf3b4302b23d6abc483b80796fee753b0e6fba85
Reviewed-on: https://gerrit.instructure.com/37303
Reviewed-by: Derek DeVries <ddevries@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>