Initial implementation for CriteriaAndPostsForQuestions

Note: A database upgrade is required.
For: Issue #94

Database:
- create a new model called CriteriaAndPostsForQuestions to store
the relationship between the questions and their criteria
- CriteriaAndCourses is kept - it is now being used to store the
criteria available to be added to questions
- the upgrade script includes scripts to populate the
CriteriaAndPostsForQuestions table with the existing questions
and relating them to all the criteria in their respective courses
- the upgrade script also includes instructions to relate Scores
and Judgements to CriteriaAndPostsForQuestions and remove the
relationship with CriteriaAndCourses

Dataformat/Model:
- now that criteria are related directly to questions, I've added
an attribute/relationshp within PostsForQuestions to store all
the active criteria within the question. This also allow us to use
one less api call in the controller

API:
- the evaluation comments and judgements api functions had to be
refactored to query & save with criteriaandpostsforquestions_id
instead of criteriaandcourses_id

Controller:
- removed some api calls for the criteria in the course. Instead
I assign the CriteriaAndPostsForQuestions attribute within
PostsForQuestions to the criteria variable in the scope
- made sure the controller is passing the criteriaandpostsforquestions_id
to the api instead of the criteriaandcourses_id. This is notably done in
the Judgement controller and Comments controller.

Tests:
- test data minimally refactored to reflect database/model changes
- refactored judgements backend test to reflect the same changes
- planning to refactored the test data to semi merge the evaluation
comments and criteria test data with the judgements test data to
avoid duplicate code as much as possible
implemented adding/removing criteria from questions

- created new api functions for adding and removing criteria from questions
- currently the api does not allow users to remove criteria from questions
that have already been used in an evaluation. The reason for this is to
avoid having evaluation results being unlinked from the question
- currently TAs and instructors are allow to create and delete
criteria from questions
- in the question edit form, criteria are automatically added/removed
from the question as the checkboxes are checked/unchecked)
- in the question create form, the criteria are added after submission
because we need to wait until we have a question id for the question
- changed the list of the criteria on the question view page to use
CriteriaAndPostsForQuestions instead of the original
CriteriaAndCourses
created an error for users trying to remove criteria from a course

when the criterion is already used in question

- refactored changing criteria in questions. If the question is
already evaluated, the criteria are locked down. So no new
criteria can be added and no criteria can be removed.