New Gamescene class for handling systems and objects

GameScenes can create GameObjects, as well as recycle them and
efficiently add new GameObjects.

GameScenes call important methods to all the systems added to it, such
as notifications of an object being added or removed. Or adding/removing
components from objects.