Updated Physics code

Collision now work perfectly and gravity now works correctly, also added
'parent' attribute to PhysicsObject. If parent is not None then
parent.physics_event will be called when a collision or whatever
happens. Look at player.py for an example of this in action