Fix for runtime crash with skins nested in solo nodes.

Fixes a crash @HayesGordon caught when using the GameKit. Turns out it's a bug in the C++ runtime with loading of skins inside of nested solo nodes.

We used to resolve the parent of a skin in the "onAddedClean" cycle as it assumed onDirty would only be called after load. Solos can now call that during the "onAddedClean" cycle. We can do the same logic "onAddedDirty" and then the onDirty calls will only happen after we've ascertained we have a valid skinnable parent, so the assumptions still hold.

Diffs=
9266e0d30 Fix for runtime crash with skins nested in solo nodes. (#5109)
diff --git a/.rive_head b/.rive_head
index 2744b5e..6ae37bf 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-d9fc7d92736d3ac97fafc2f2713ec25211584799
+9266e0d308fa635b6cd9e037fa75c7b88cdb7a87
diff --git a/include/rive/bones/skin.hpp b/include/rive/bones/skin.hpp
index ba70420..862b60e 100644
--- a/include/rive/bones/skin.hpp
+++ b/include/rive/bones/skin.hpp
@@ -29,7 +29,7 @@
     void addTendon(Tendon* tendon);
 
 public:
-    StatusCode onAddedClean(CoreContext* context) override;
+    StatusCode onAddedDirty(CoreContext* context) override;
     void buildDependencies() override;
     void deform(Span<Vertex*> vertices);
     void onDirty(ComponentDirt dirt) override;
diff --git a/src/bones/skin.cpp b/src/bones/skin.cpp
index 4a67abc..33a27c6 100644
--- a/src/bones/skin.cpp
+++ b/src/bones/skin.cpp
@@ -10,8 +10,13 @@
 
 Skin::~Skin() { delete[] m_BoneTransforms; }
 
-StatusCode Skin::onAddedClean(CoreContext* context)
+StatusCode Skin::onAddedDirty(CoreContext* context)
 {
+    StatusCode code = Super::onAddedDirty(context);
+    if (code != StatusCode::Ok)
+    {
+        return code;
+    }
     m_WorldTransform[0] = xx();
     m_WorldTransform[1] = xy();
     m_WorldTransform[2] = yx();
diff --git a/test/assets/death_knight.riv b/test/assets/death_knight.riv
new file mode 100644
index 0000000..153254d
--- /dev/null
+++ b/test/assets/death_knight.riv
Binary files differ
diff --git a/test/solo_test.cpp b/test/solo_test.cpp
index 9483e1b..8757162 100644
--- a/test/solo_test.cpp
+++ b/test/solo_test.cpp
@@ -5,7 +5,17 @@
 #include <catch.hpp>
 #include <cstdio>
 
-TEST_CASE("children load correclty", "[solo]")
+TEST_CASE("file with skins in solos loads correctly", "[solo]")
+{
+    auto file = ReadRiveFile("../../test/assets/death_knight.riv");
+
+    auto artboard = file->artboard()->instance();
+    artboard->advance(0.0f);
+    auto solos = artboard->find<rive::Solo>();
+    REQUIRE(solos.size() == 2);
+}
+
+TEST_CASE("children load correctly", "[solo]")
 {
     auto file = ReadRiveFile("../../test/assets/solo_test.riv");