Add de/serializers

These will enable us to save and retrieve puzzle configurations from a
service.