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
const is result of a function call?  how does that work?