Define factories for multiple models

Factories for the following models have been defined to facilitate the writing of specs in the future:

- Annotation
- Assessment::AnswerGrading
- Assessment::CodingQuestion
- Assessment::GeneralQuestion
- Assessment::Grading
- Assessment::McqOption
- Assessment::McqQuestion
- Assessment::Submission
- Comment
- CommentTopic
- UserCourse

The following related bugs have also been fixed:

- The case statement in `Assessment::Submission#build_initial_answers` now assigns the correct value to `ans_class` when creating the initial set of answers.
- The `achievements/_form.html.erb` partial no longer has multiple form elements named "achievement". This was causing the build to fail when a valid `Level` was added to the `Course` factory.
@raymondtangsc `ActiveRecord::Base` overrides `===` such that this case statement works as expected.

http://truffles.me.uk/rubys-equality-operator
https://github.com/rails/rails/blob/master/activerecord/lib/active_record/core.rb#L227-229