Making daylightingDeviceShelf usable

[#63421162]
Improve daylightingDeviceShelf logic

[#63421162]
Adding Shaded Sub Surface to ShadingSurfaceGroup

[#63421162]
Allow shading surface group to be associated with a subsurface or a surface

[#63421162]
Initial work on double wwr method

[#63421162]
Ready to start testing

[#63421162]
Fixing unit tests

[#63421162]
Making improvements identified with Andrew.  PlanarSurface.centroid, DaylightingControl.aimAt, to_s for Point3d and Vector3d

[#63421162]
Adding method for joining polygons

[#63421162]
First cut at splitSurfaceForSubsurfaces, needs testing

Added findConnectedComponents method for adjacency matrix, pointInPolygon method, and joinAll taking multiple polygons.  Adding basic unit tests.

[#63421162]
Fixing unit test
Fixing other unit test
Fixing typo in name

@DavidGoldwasser now this is ready to test

[#63421162]
Starting at skylight methods

[#63421162]
Fixing a bug in splitSurfaceForSubSurfaces

[#63421162]
Proposed API for adding skylights so @DavidGoldwasser can review

[#63421162]
Initial implementation of applySkylightPattern complete, needs testing

[#63421162]
Fixing compile error, code not working, need to debug when I get into the office

[#63421162]
Now this is ready for testing @DavidGoldwasser

[#63421162]
Merge pull request #866 from NREL/63421162_WWR_Enhancements

63421162 wwr enhancements