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.
Is this tested ? I suspect qn.specifc returns an instance rather than class type.