Fix tess for C++11 and add to github action

Fixes for C++11 based on feedback here: https://2dimensions.slack.com/archives/C01E4NE1X5Y/p1671460526960859

Diffs=
6a8f9e249 Fix tess for C++11 and add to github action (#4571)
diff --git a/.rive_head b/.rive_head
index 4758ad4..7609b53 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-c8b5fdadd370d61267c0c6352b609f3608f3efd5
+6a8f9e249af37b3ca5e9639df726cfce01da1ad6
diff --git a/tess/build/premake5_tess.lua b/tess/build/premake5_tess.lua
index dafc1e8..a374df4 100644
--- a/tess/build/premake5_tess.lua
+++ b/tess/build/premake5_tess.lua
@@ -11,7 +11,7 @@
 do
     kind 'StaticLib'
     language 'C++'
-    cppdialect 'C++17'
+    cppdialect 'C++11'
     toolset 'clang'
     targetdir '%{cfg.system}/bin/%{cfg.buildcfg}'
     objdir '%{cfg.system}/obj/%{cfg.buildcfg}'
diff --git a/tess/src/segmented_contour.cpp b/tess/src/segmented_contour.cpp
index 00110ac..92f8c0f 100644
--- a/tess/src/segmented_contour.cpp
+++ b/tess/src/segmented_contour.cpp
@@ -65,8 +65,11 @@
 
     // Possible perf consideration: could add second path that doesn't transform
     // if transform is the identity.
-    for (const auto [verb, pts] : rawPath)
+    for (auto tuple : rawPath)
     {
+        PathVerb verb = std::get<0>(tuple);
+        const Vec2D* pts = std::get<1>(tuple);
+
         switch (verb)
         {
             case PathVerb::move:
diff --git a/tess/src/tess_render_path.cpp b/tess/src/tess_render_path.cpp
index e22652e..60d2fe6 100644
--- a/tess/src/tess_render_path.cpp
+++ b/tess/src/tess_render_path.cpp
@@ -51,11 +51,11 @@
 
 template <> struct nth<0, Vec2D>
 {
-    inline static auto get(const Vec2D& t) { return t.x; };
+    inline static float get(const Vec2D& t) { return t.x; };
 };
 template <> struct nth<1, Vec2D>
 {
-    inline static auto get(const Vec2D& t) { return t.y; };
+    inline static float get(const Vec2D& t) { return t.y; };
 };
 
 } // namespace util
@@ -104,7 +104,7 @@
             bounds = m_segmentedContour.bounds();
 
             auto contour = m_segmentedContour.contourPoints();
-            auto contours = Span(&contour, 1);
+            auto contours = rive::make_span(&contour, 1);
             m_earcut(contours);
 
             containerPath->addTriangles(contour, m_earcut.indices);
@@ -127,7 +127,7 @@
             subRenderPath->contour(subPath.transform());
             const SegmentedContour& segmentedContour = subRenderPath->segmentedContour();
             auto contour = segmentedContour.contourPoints();
-            auto contours = Span(&contour, 1);
+            auto contours = rive::make_span(&contour, 1);
             m_earcut(contours);
 
             containerPath->addTriangles(contour, m_earcut.indices);
@@ -173,8 +173,9 @@
                     indices.push_back(elems[i]);
                 }
 
-                containerPath->addTriangles(Span(reinterpret_cast<const Vec2D*>(verts), nverts),
-                                            indices);
+                containerPath->addTriangles(
+                    Span<const rive::Vec2D>(reinterpret_cast<const Vec2D*>(verts), nverts),
+                    indices);
             }
             tessDeleteTess(tess);
         }
diff --git a/viewer/src/tess/bitmap_decoder.cpp b/viewer/src/tess/bitmap_decoder.cpp
index cd4a286..b438740 100644
--- a/viewer/src/tess/bitmap_decoder.cpp
+++ b/viewer/src/tess/bitmap_decoder.cpp
@@ -100,7 +100,7 @@
         return;
     }
     auto nextByteSize = byteSize(format);
-    auto nextBytes = rivestd::make_unique<uint8_t[]>(nextByteSize);
+    auto nextBytes = std::unique_ptr<uint8_t[]>(new uint8_t[nextByteSize]);
 
     auto fromBytesPerPixel = bytesPerPixel(m_PixelFormat);
     auto toBytesPerPixel = bytesPerPixel(format);