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.
Also to clarify... I don't have any problem with scrapping the existing EntityCollisionSystem and replacing it with something different. I've said that consistently for the last several months. I don't feel strongly about it's name, or, really where it lives. I can imagine a system where we have a generic physics library that can operate on some abstract interface for things that can collide with other things... For example we need to eventually support entities colliding with the terrain, etc. And that IMO is the best argument for why we should find a new home for the "collision system". But I think that home (call it the physics library) will ultimately become a dependency of avatars, entities, metavoxels, voxels, etc... since ultimately these things will all need to provide details about their physicality to this system. And all of those things will live in both interface and the AC and will need to "do physics things" in both targets.

As for your point about Shape and ShapeCollider... I am not suggesting we need to keep or use that. In fact the old "particle collision system" didn't know anything about shapes. When I ported collision to work with entities, I used the Shape and ShapeCollider interfaces because I knew you were using those for avatars. So I was just using the API I believe we'd standardized on. If we want to use some different interface to describe "physical things"... then great... I am 100% in support of using whatever interface we agree on.