Basic save state functionality, no loading.

This would ideally be moved somewhere else - the model data shouldn't be carrying display info around if we can help it.