Modified collisions:

Now we check for collisions against any layer that has the "obstacle"
property, and resolve callbacks on layers that have other properties,
like "destructible"