Ctor structs, node IDs, Scene/Physics into node.hpp, cleanup
- Add Ctor structs to Node3d, NodeUi, SkMesh, Mesh, PointLight, Spotlight, Img, Label, MenuItem, RadialProgress, TileView, Scrollbar
- Pass position/scale/rot via Ctor instead of post-construction setters
- Add Node::getId() using stable per-instance integer IDs
- Remove toNodeId(void*) pointer-hash; replace with Node::getId()
- Add idToNode map to Scene for O(1) getById lookup
- Move Scene and Physics declarations from scene.hpp into node.hpp
- Delete scene.hpp; update all includes accordingly
- Use swap-and-pop for O(1) node removal in Scene::cleanup
- Move Scene to oup::observable_sealed_ptr in gameplay and editor
- Add scene pointer cached in Node constructor to avoid root traversal
- Add Node3d::Ctor forwarding through inheritance chain
- Fix Scrollbar::getPos renamed to getVal for consistency
- Fix scrollbar shader thumb UV calculation
- Update scrollbar assets
- Use oup::make_observable_sealed for Scene in gameplay and editor
- Set editor scene to uiMode by default
- Various glm brace-initialization cleanups