Player controller and room transitions + minor fixes

Extended environments for both objects and components (their sandboxes).
Created a second room to test room transitions. Player can now move around
and change rooms through doors.

spawnid variable:
The spawnid variable defines where in a room the player will end up after entering a door.
It works using the 'portal' principle: Every SceneTransition object must have a spawnid
and so does every Player object. Once the player goes through a door, the door tells the
scene manager its spawnid and then in the next room, the player spawns at the Player object
with the matching spawnid.

TL;DR: Every SceneTransition and Player object must have a spawnid. Each SceneTransition's spawnid
must have a Player object with the matching spawnid in the destination room. (otherwise no player will spawn)

abort_instantiation variable:
It is now possible for objects to abort their instantiations (if there are circumstances which make these objects
unnecessary). To abort the instantiation just do:
self.abort_instantiation = true
...while defining an object.