Switch include order of Godot.hpp and Ref.hpp
As Ref<T> uses Object::cast_to<T>, which is defined in Godot.hpp, the includes need to be the other way around to work consistently. If not done like this, inconsistent behaviour during linking/loading may occur and produce errors like this: undefined symbol: ZN5godot6Object7cast_toINS_15SpatialMaterialEEEPT_PKS0
There is a more detailed description in the related issue: Fixes #540
I am not sure if the include of Ref.hpp in Godot.hpp was intentional, thus open for discussion.
Due to that fact: People are using Ref<T> while only including Godot.hpp, which means this is a breaking change.
Not sure if there is a way to solve this without breakage. Maybe move the definition of Object::cast_to<T> to a separate header and include that?
@founderio Is this PR still relevant for Godot 4.x and GDExtension? Also, this PR has conflicts that need to be resolved before this can be considered, can you rebase?