Optimizations to the generated bindings
Optimizations to the generated bindings

This change gets rid of the call-time method binding query, instead it queries
all method bindings up-front at initialization time so that no extra cost is
added at function call time.

In addition, also converted the "icall" code to a header-only library so one
level of unnecessary call-stack is eliminated.

Also changed binding generator to use real_t instead of double everywhere
(except at the GDNative interface where unfortunately using doubles is hard-coded
on the engine side).

All this comes at a minimal increase in binary size (for the library, as actual
native modules might not even increase in size in practice).

GodotNativeTools/godot-cpp,GodotNativeTools/cpp_bindings,godotengine/godot-cpp,godotengine/godot-cpp,GodotNativeTools/cpp_bindings,godotengine/godot-cpp,GodotNativeTools/godot-cpp,GodotNativeTools/godot-cpp,godotengine/godot-cpp