Feature/proper-json-and-class-hierarchy

Question types are now truly modular: we can add a new question type by implementing its `QuestionDetails`, its `Answer`, and its `QuestionViewAdapter`. No need to change other files.