VerletShapes keep pointers to VerletPoints (rather than to glm::vec3's)
VerletShapes compute lagrangian coefficients
VerletShapes send their movement accumulations to their VerletPoints
PhysicsSimulation tells CollisionInfos to apply() themselves
CollisionInfo knows how to apply() itself to affected shapes
Shape gets _mass and some stubbed methods for accumulating movement
VerletPoint gets movement accumulator