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.
Bullet is going to replace all of the collision handling that is done inside EntityCollisionSystem, hence I think the current ECS implementation is going to eventually get purged.  However Bullet will handle more than just entities (e.g. avatars and metavoxels) so the physics engine implementation should live in our "physics" library.  Yes, the entities lib will depend on physics.

Since ECS is going to be purged I decided to pre-emptively clean it out of entities and move it to the only place where it is being used, however this move is not strictly necessary, so I'm willing to move it back to entities.