First steps towards serialisation.

Deserialization of JSON files is now done with https://github.com/icanzilb/JSONModel.

This involved a whole host of changes to the Tests as well as the header files.

There's still a bit of work to do to support serialisation of themes and styles, but it shouldn't be much more. A few properties need to be manually converted and some tests will have to be added.