added more backend tests

- I've written tests for the following models:
	- answer
	- course
	- classlist
- In the course api, I've added default values to the boolean values
(default False), so that it will work with the test database. In the
tests, if a value is not given, a None value is the default, which is
invalid.
Fixed gradebook and participation report generator.

Both were still query CriteriaAndCourses for the criteria in the
question. This no longer works because each question can have
different criteria. The algorithm has now been changed to query
CriteriaAndPostsForQuestions instead.