refactored more. fleshed out the physics engine so that physics objects
don't all need to track their own positions. All they need is
to report their velocity vectors and collision models (and can
listen to collision events)