collisions: use registered handlers, provide add/delete colliders
collisions: use registered handlers, provide add/delete colliders

Ok, things are much quirky now. CollisionManager is first 'system'
in our ECS engine. Systems belong to State, I think, so indirect
Collider<->Manager link is not so nescessary. But colliders must
be in weakref set, to be collected by gc, so much refs they have.

Manager is responsible to manage it's entities, here are add/remove
methods come to play. Straightforward. Like State manages game
objects, like AnimationManager manages animations. Add/remove is
public API for *Manager. By the way, AnimationManager acts now at
GameObject level, but CollisionManager is much highter,
at State level, that's why I call it "first system".

Signed-off-by: Pavel Kulyov <661f9993ccc93424ad20871d2ea98bc2860e5968@gmail.com>

pankshok/xoinvader,pkulev/xoinvader