Added support for listening to collision events

- onCollision virtual method added to WorldObject that gets called
  on collision with other objects