pull entity simulation out of EntityTree

The EntityTree::update() method would call EntityItem::update() on each entity and would also maintain a list of Moving and Static entities.  That kind of work falls under the domain of a physics engine (when available) so this is an effort to make it easier to replace the default simple (velocity + gravity) extrapolation simulation with a more elaborate physics engine.

To this end the movement of entities has been pulled out of EntityTree and given to an EntitySimulation, of which SimpleEntitySimulation is an implementation.  The EntityTree gets an optional pointer to an EntitySimulation.

The interface also does some simple collision detection in the EntityCollisionSystem class.  This class has been moved to the interface codebase, and now derives from SimpleEntitySimulation.  So the interface Application class connects its _entityCollisionSystem up to its EntityTree.

The EntityServer and EntityTreeHeadlessViewer classes also get simulations so that they can move entities around.
No, I'd prefer for the entities library to not depend on the physics lib if possible.  Clean code separation will make it easier to upgrade or replace the physic engine in the future.

I don't think we'll want to keep the Shape and ShapeCollider stuff in the long term -- Bullet is going to easily outperform it, even for an AC on strange hardware.  EntityCollisionSystem will likewise be replaced and since it is only used by Interface ATM that's where it should go until its replacement is ready.

The functionality that the EntityCollisionSystem provides (e.g. the collision callback events for scripts) is needed so we'll reimplement it.  I don't think it will be hard to make something that is useful to both Interface and AC, and we'll put it in the right place so that both applications can use it.