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.
I'm not happy with this method.  The Octree::createTree() method does not necessarily USE the tree that it creates, so in theory someone could call it to get a new tree instance of the correct type.  However, in practice createTree() is used inside Octree::init() to create the tree AND assign it to Octree::_tree.  In the function above I'm ASSUMING that the tree that is created will be connected to the simulation... so if someone were to call it the first time just to get a new tree instance... it might be incorrectly connected to the simulation.  However, fixing this seemed to require some changes all the way down at the Octree API and I wasn't ready to mess with that at this stage.  I'll ponder it a bit more -- I think I can rewrite EntityServer::init() to do the right thing and then fix this wart.