Model Server to Entity Server Refactoring

This is a massive PR I realize. I'll be adding notes throughout to help whoever reviews it.

Big changes:
* Models replaced by Entities - naming, classes, etc.
* Entities have all the features that models had, but also support some features of particles (like velocity, gravity, damping, etc)
* ModelItems used to be stored in the element as vectors of ModelItem instances, this has been switched to being heap allocated EntityItem derived class instances, and the tree elements now contain lists of pointers to those heap allocated items. This optimizes our ability to move them around easily when being edited or animated.
* There are now 3 types of entities, more to come, the three types are: Box, Sphere, and Model.
* The old 32bit server assigned IDs have been replaced by server assigned UUIDs - this fixes several collision bugs in the old code.
* All the editing APIs (add, update, delete, getProperties, etc) have been updated to use faster recursion operators and better strategies for minimal traversal of the tree. - This improved large tree performance significantly (up to 20,000x improvement).
* Entities can be accessed by ID through a hash instead of searching the tree... another big performance improvement.
* Delete entity is now a true message/command and no longer uses the goofy "should die" property.
* Some renaming of "node" in trees to be "element" so as to stick with our naming conventions.
* cleaned up some dead code in the voxel system

I predict EntityItem is going to become a very important base class in our libraries.  As such its API will ease or confound our efforts to add features and fix bugs in the future... depending on how well it is designed.  This is a good start and should be merged, but going forward I encourage us all to think very carefully about what should be in EntityItem and what should be left its derived classes.