Refactor Question into several classes

This allow a better enforcement of constraints, while being easier to
understand what is what.

Question API controller now takes an additionnal parameter 'type' in JSON to
tell what kinf of question we want to create