Experimental Version of new Entity Editing UI/UX

This is the first cut at a new editing UX

* It has the same editModels.js features for adding new entities - but changes the select, translate, and stretch behavior
* rotate is not yet supported, but new overlay features for displaying rotation disks has been added
* stretching of entities is now done through "grabber" handles visible on the selection box

Additional scripting support was added to make this possible:
* new planar overlays for circles/ellipses and rectangles
* ray intersection testing was added to 3D overlays
* boxes and spheres were updated to support "stretching"
* dashed lines were added to wire/line overlays
* I moved several "helper classes" in the editModels.js file into their own "libraries" - I didn't make this change in editModels, because I wanted to leave it fully functional... but in the new newEditEntities.js these classes are referenced by Script.include() in order to keep the main editing code cleaner.

NOTE: This is still experimental. It's not fully functional. Some warnings:
* you can stretch objects in strange ways that may cause problems.. be careful not to stretch an object to a negative dimension
* sometimes when starting a second move or stretch operation the tool will jump your entity to an old location or size
It's not clear to me that value.face is guaranteed to be one of the enumerated values.  Perhaps this switch statement should have a "default" case?  The UNKNOWN_FACE case could fall through to default.