### Godot version

4.0 beta 15

### System information

Windows 10

### Issue description

When ticking `apply_root_scale` the scale is not applied to custom collision shape set in importer.
This apply for `shape_type`  Box, Sphere, Cylinder and Capsule

_I tried to fix it myself but i'm a bit confused on how to have acces to the `apply_root_scale` and `root_scale` at the moment where the shape is generated_

### Steps to reproduce

- Add a 3d model.
- Generate physics for the mesh
- Select a `shape_type` for example Box
- Add `root_scale` != 1 and tick `apply_root_scale`

### Minimal reproduction project

[BoxColliderImport.zip](https://github.com/godotengine/godot/files/10500751/BoxColliderImport.zip)

Node *_pre_fix_node(Node *p_node, Node *p_root, HashMap<Ref<ImporterMesh>, Vector<Ref<Shape3D>>> &r_collision_map, Pair<PackedVector3Array, PackedInt32Array> *r_occluder_arrays, List<Pair<NodePath, Node *>> &r_node_renames);
	Node *_pre_fix_animations(Node *p_node, Node *p_root, const Dictionary &p_node_data, const Dictionary &p_animation_data, float p_animation_fps);
	Node *_post_fix_node(Node *p_node, Node *p_root, HashMap<Ref<ImporterMesh>, Vector<Ref<Shape3D>>> &collision_map, Pair<PackedVector3Array, PackedInt32Array> &r_occluder_arrays, HashSet<Ref<ImporterMesh>> &r_scanned_meshes, const Dictionary &p_node_data, const Dictionary &p_material_data, const Dictionary &p_animation_data, float p_animation_fps);
	Node *_post_fix_animations(Node *p_node, Node *p_root, const Dictionary &p_node_data, const Dictionary &p_animation_data, float p_animation_fps);
	Ref<Animation> _save_animation_to_file(Ref<Animation> anim, bool p_save_to_file, String p_save_to_path, bool p_keep_custom_tracks);
	void _create_slices(AnimationPlayer *ap, Ref<Animation> anim, const Array &p_clips, bool p_bake_all);
	void _optimize_animations(AnimationPlayer *anim, float p_max_vel_error, float p_max_ang_error, int p_prc_error);
	void _compress_animations(AnimationPlayer *anim, int p_page_size_kb);
	Node *pre_import(const String &p_source_file, const HashMap<StringName, Variant> &p_options);
	virtual Error import(const String &p_source_file, const String &p_save_path, const HashMap<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files = nullptr, Variant *r_metadata = nullptr) override;
	virtual bool has_advanced_options() const override;
	virtual void show_advanced_options(const String &p_path) override;
	virtual bool can_import_threaded() const override { return false; }
	ResourceImporterScene(bool p_animation_import = false);
	template <class M>
	static Vector<Ref<Shape3D>> get_collision_shapes(const Ref<Mesh> &p_mesh, const M &p_options);
	template <class M>
	static Transform3D get_collision_shapes_transform(const M &p_options);
};
class EditorSceneFormatImporterESCN : public EditorSceneFormatImporter {
	GDCLASS(EditorSceneFormatImporterESCN, EditorSceneFormatImporter);
public:
	virtual uint32_t get_import_flags() const override;
	virtual void get_extensions(List<String> *r_extensions) const override;
	virtual Node *import_scene(const String &p_path, uint32_t p_flags, const HashMap<StringName, Variant> &p_options, List<String> *r_missing_deps, Error *r_err = nullptr) override;
};
template <class M>
Vector<Ref<Shape3D>> ResourceImporterScene::get_collision_shapes(const Ref<Mesh> &p_mesh, const M &p_options) {