cleanup of EntitySimulation API

* remove EntityItem::_simulationState (only useful to EntitySimulation)
* move code from SimpleEntitySimuation to EntitySimulation
* EntitySimulation now maintans many QSets of entities
* cleanup and clarify use of EnityTree::updateEntity()
* reduced cost of polling for entity expiries
* changed "UpdateFlags" to "DirtyFlags" and clarified what they're for
whoops, forgot to increment the iterator
set dirty bit when script changes simulation stuff

also fixes for linear and angular damping
merge upstream/master into andrew/thermonuclear
Merge pull request #3922 from AndrewMeadows/thermonuclear

overhaul EntitySimulation API (and relay relevant EntityItem properties to simulation when they change)