mainly cleanup and refactoring

*added a zoom_reset command to center the view on the player and reset
the zoom factor to 1.0
*properly forwarded window dimensions down to the implementation
*added a json helper "has_field" to check for the presence of a field
*cleaned up the older json parsers
*refactored the level generation code a little