Implementation of custom collision events.

This is a solution for #62 
It should work (haven't tested yet, will do tomorrow).

Collisions are handled on entity level.

There are some questionable design choices in here that were hard to find a clean solution to. 

Most of the ugly is summed up with this line: ```Game::instance().engine().collisionSystem().addCollision(obj1, obj2);``` from forced bullet related global function (atleast invisible outside compilation unit). 

Another "ugly" is a Function object to the properties of RigidBodyComponent, which doesn't seem to belong.

Edit: It wont work until i call setUserPointer when adding/creating RigidBodyComponents