Fixes pretransform visitor with shared arrays
Adds allowDrawArray attribute in TriStripVisitor
[#75094726] Splits osgjs plugin into gles (reader) and osgjs (writer) plugins

* osgjs plugin should only serve for output serialization;
* gles plugin should handle geometry processing and optimization for webgl.
[#75094726] Adds 'triStripMinSize' option for gles pseudo-loader
[#75094726] Fixes mergeTrianglesStrip in gles pseudo-loader

* avoid unnecessary degenerated triangles
* insert strip at the beginning of PrimitiveSetList to benefit more from
  vertex pretransform
[#75094726] Enables gles as a pseudo-writer

In order to avoid issues with osg::Optimizer (such as merging splitted geometries),
it might be practical to use gles as a pseudo-loader rather than a pseudo-loader.
[#75095064] Refactors GLES pseudo-loader

* refactors primitive functors to avoid duplicates & obsolete code
* refactors WireframeVisitor: fixes some primitives indexation and enable to
  store an inlined wireframe; note that wireframe handling has to be managed by
  optimizer visitors
* refactors GeometryIndexSplitVisitor to handle lines
* Adds maxIndexValue option for debug purposes
* uses GeometryUniqueVisitor for DRY
* OpenGLESGeometryOptimizer is no longer a visitor but a conductor calling the
  desired gles optimization visitors (and renames visitor files correctly)
* as a consequence, the scene is now traversed by each visitor which will
  induce longer processing timings
* all visitors work on DrawElementsUInt; osgjs will offer a visitor to compact
  integers buffers
* cleans some trailing space
* fixes some compiler warnings
[#75095926] Adds option for osgjs to dump buffer data in specific binary files
[#75095926] Adds serialization of non-string UserValues in osgjs
[#75095926] Adds VecX(u)iArrayType in osgjs serialization
[#75095926] Adds optional varint encoding in osgjs
[#75095926] Updates osgjs tangent space handling
[#75095926] Updates osgjs index serialization

* uses correct types when serializing
* adds CompactBufferVisitor to use smallest possible types for integer buffers
[#75095064] Refactors GLES pseudo-loader

* refactors primitive functors to avoid duplicates & obsolete code
* refactors WireframeVisitor: fixes some primitives indexation and enable to
  store an inlined wireframe; note that wireframe handling has to be managed by
  optimizer visitors
* refactors GeometryIndexSplitVisitor to handle lines
* Adds maxIndexValue option for debug purposes
* uses GeometryUniqueVisitor for DRY
* OpenGLESGeometryOptimizer is no longer a visitor but a conductor calling the
  desired gles optimization visitors (and renames visitor files correctly)
* as a consequence, the scene is now traversed by each visitor which will
  induce longer processing timings
* all visitors work on DrawElementsUInt; osgjs will offer a visitor to compact
  integers buffers
* cleans some trailing space
* fixes some compiler warnings
[#75095926] Adds option for osgjs to dump buffer data in specific binary files
[#75095926] Adds serialization of non-string UserValues in osgjs
[#75095926] Adds VecX(u)iArrayType in osgjs serialization
[#75095926] Adds optional varint encoding in osgjs
[#75095926] Updates osgjs tangent space handling
[#75095926] Updates osgjs index serialization

* uses correct types when serializing
* adds CompactBufferVisitor to use smallest possible types for integer buffers