remove collidable mixin

check the types of the other shapes in the objects' on_collision callbacks
survival-mode: don't track all agents' on_death callbacks

this was done so that they could be removed when the survival mode
state exited, otherwise there was a change that a null callback would
be called: if the callback was a member function of the state but the
state has changed. not nice to have to track every signal and slot.

instead, just add an if-statement to the slot closure which checks
whether the actual callback function exists or not. seems like the
less-bad option.
move game objects into world namespace

classes for all objects which are part of the world, e.g.
agents and their controllers, bullets, items, etc, get moved
into a world folder. The world class is also moved there, so it's
now world.world
namespace the name args for middleclass classes
coding style changes
display a human readable name for held items