Updated the way rigidbodies are updated

Fixed the bug causing the ball to sometimes pass through objects by
making objects kinetic objects and using a custom motion state inherited
from btMotionState
Improved the graphical object heirarchy design
Added AIPlayer surve

Also redid the hitting of a ball, skipping the async calls. Updated
rules to handle AI surve. Rewrote the main file to reduce the number of
globals and grouped some loose variables appropriately.