Merge all recent work on virtual geometry into main
Much recent work on virtual surfaces is included in this MR. Three concrete instances of GeoVSurfaceShape (GeoRectSurface, GeoTrapezoidSurface, and GeoAnnulusSurface) are now included. GeoVSurfaceShape is used with GeoVSurface following the pattern of LogVols and PhysVol. A new example plugin called SiliconSystemPlugin demonstrates the use of these classes.