Assessment refactoring and question block in answer

See commit messages for specific steps taken
OK, but this is on the client side, which we can be tampered by users and thus can't be relied on. Looking at the server side, https://github.com/open-craft/xblock-mentoring/blob/assessment-refactoring/mentoring/mentoring.py#L277-L297 I see some possible issues. Shoudn't `if self.step > step` be `if self.step != step`? What happens if you change this? Can the reason be because `step = children.index(child)` would jump step numbers when the client would ignore some of the children? 

Ie if there are three children: mcq, html, mcq. Do we go from step=0 to step=2?

@aboudreault Your comments would likely be helpful here - is that correct?