Spawners now track the lifetime of Items, Room code has been simplified

ItemSpawner now keeps track of an item that it spawns by waiting for a "death" event matching the ID of its spawned item. 

The code for Room has been modified to get rid of unused methods and also to simplify getting the Spawners inside of it. Now it returns a list of weak pointers so the ownership is clear.