Monster commit: main change: separated GUI from State classes

Improvements:
- Extracted State classes from Game
- Collision detection fully according to spec now
- Fruit spawning now matches rules
- Speeds according to spec (elroy speed, ...), except for cornering

- Error is now a proper std::exception
- Removed catch blocks that only hid exceptions
- Moved catch blocks to places that know how to handle the error

Need to fix later:
- It crashes
- Dead ghosts no longer return to their pen
- All ghosts spawn simultaneously, and don't leave their pen by correct path
  finding
- No longer draws fruit
- Nor does it spawn fruit at the correct place, basically nowhere
- Some other todos inlined in code

Simplifications/removals:
- Ghosts no longer show warning flicker
- Floating scores no longer rendered
- Only supports 1 life pacman for 1 level
- Picks first possible action, doesn't take keyboard input anymore.
- Classic pacman map is only supported map from now on; hardcoded things
  related to classic map in Settings and such
- Removed editor
- Removed highscore
Removed empty ~Settings()
Made level path constant (there's only one level/map)
File, function name, line number are now printed upon uncaught exception
Fix: map file path was wrong
field width/height are hardcoded constants
Can no longer switch skins, always picks skin 0
Made constants of many other settings values
Made width, height hardcoded constants too

No longer need to load a config file
Removed declaration that no longer had a definition
Turned Settings into a namespace

and moved some of its constants elsewhere
Removed Settings namespace, made them global
Renamed Settings to Constants and removed unused cpp files
Removed some unused defines
Removed unnecessary include
Used forward declarations instead of includes where possible
Hardcoded the food map
Removed printing some debug info
Removed unused config file
Fixed SKIN_PATH