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.
This implementation of EntityTree::getContainingElement() uses up to two fewer QMap lookups by entityItemID.