move version migrations into their own file

and a couple of migrations: the 'type' thing records whether an object is a question or an exam, and variables are now objects instead of just strings, so we can add extra fields