Implementation of custom collision events.

It should work (haven't tested yet, will do tomorrow).

Now there are some questionable design choices in here that were hard to find a clean solution to. 

Most of the ugly is explained with this line: ```Game::instance().engine().collisionSystem().addCollision(obj1, obj2);``` from forced bullet related global (but invisible) function.