Refactor and test survey model

Refactored survey.requirements & survey.mandatory_questions methods and wrote tests for them. All tests passing.