Updates Scene to contain a separate list of SceneLights, since other languages cannot easily downcast from SceneObject to SceneLight (e.g. Rust).
Adds Index fields to the internal lists of SceneItems and SceneLights in Scene so reference equaility is no longer needed when comparing them.