Overhauled entity deletion system

Spent all day looking for the subtle bug affecting ammo deletion:
multiple shared_ptr pointing to the same raw pointer. Entities now have
a bool del_flag and a del() method. World is now an entity garbage
collector.