### Godot version

4.2 247c354

### System information

Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 (NVIDIA; 30.0.15.1403) - Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 Threads)

### Issue description

#75778 exposed `_validate_property()` to scripting. It's implemented in GDScript and C#, but not GDExtension (depends on #78634).
https://github.com/godotengine/godot/blob/247c3548d810136ffe9c1694cd76db3236efaa90/core/object/script_language_extension.h#L685-L687

Relevant discussion: https://github.com/godotengine/godot/pull/75778#discussion_r1307294940

### Steps to reproduce

1. Add GDExtension script
2. Use `_validate_property()`

### Minimal reproduction project

N/A
memnew_placement(r_dest, String(p_contents, p_size));
}
static void gdextension_string_new_with_utf8_chars_and_len(GDExtensionUninitializedStringPtr r_dest, const char *p_contents, GDExtensionInt p_size) {
	memnew_placement(r_dest, String);
	String *dest = reinterpret_cast<String *>(r_dest);
	dest->parse_utf8(p_contents, p_size);
}
static void gdextension_string_new_with_utf16_chars_and_len(GDExtensionUninitializedStringPtr r_dest, const char16_t *p_contents, GDExtensionInt p_size) {
	memnew_placement(r_dest, String);
	String *dest = reinterpret_cast<String *>(r_dest);
	dest->parse_utf16(p_contents, p_size);
}
static void gdextension_string_new_with_utf32_chars_and_len(GDExtensionUninitializedStringPtr r_dest, const char32_t *p_contents, GDExtensionInt p_size) {
	memnew_placement(r_dest, String((const char32_t *)p_contents, p_size));
}
static void gdextension_string_new_with_wide_chars_and_len(GDExtensionUninitializedStringPtr r_dest, const wchar_t *p_contents, GDExtensionInt p_size) {
	if constexpr (sizeof(wchar_t) == 2) {
		
		memnew_placement(r_dest, String);
		String *dest = reinterpret_cast<String *>(r_dest);
		dest->parse_utf16((const char16_t *)p_contents, p_size);
	} else {
		
		memnew_placement(r_dest, String((const char32_t *)p_contents, p_size));
	}
}
static GDExtensionInt gdextension_string_to_latin1_chars(GDExtensionConstStringPtr p_self, char *r_text, GDExtensionInt p_max_write_length) {