Added an abstract class for gamemodes

- Moved all gamemodes to extend the abstract class