### Godot version

4.0.dev (d0398f62f0)

### System information

Windows 10

### Issue description

`GraphNode` class declares members with conflicting names.  
- `selected` property: https://github.com/godotengine/godot/blob/0daa86d70e7338506c37bee6b6e0c4aba7255d68/scene/gui/graph_node.cpp#L1154
- `selected` signal: https://github.com/godotengine/godot/blob/0daa86d70e7338506c37bee6b6e0c4aba7255d68/scene/gui/graph_node.cpp#L1164

As now signals are truely members of the class, this leads to name colliding in several languages.  
- In GDScript, the signal can't be used as it is treated as a property:
![image](https://user-images.githubusercontent.com/48322356/210059248-edbbd142-5d34-41f0-a3f5-08d4f2e02fc3.png)
- In Kotlin, the generated API code cannot compile as signal and property declarations are conflicting:
```
e: ~\git\godot\modules\kotlin_jvm\kt\godot-library\src\main\kotlin\godot\gen\godot\GraphNode.kt: (53, 14): Conflicting declarations: public final val selected: Signal0, public final var selected: Boolean
e: ~\git\godot\modules\kotlin_jvm\kt\godot-library\src\main\kotlin\godot\gen\godot\GraphNode.kt: (182, 14): Conflicting declarations: public final val selected: Signal0, public final var selected: Boolean
```

### Steps to reproduce

Try to use `selected` signal from GDScript.

### Minimal reproduction project

N/A
for (const StringName &E : block_heads) {
		_place_block(E, gap_v, layers, root, align, node_names, inner_shift, sink, shift, new_positions);
	}
	origin.y = Object::cast_to<GraphNode>(node_names[layers[0][0]])->get_position_offset().y - (new_positions[layers[0][0]].y + (float)inner_shift[layers[0][0]]);
	origin.x = Object::cast_to<GraphNode>(node_names[layers[0][0]])->get_position_offset().x;
	for (const StringName &E : block_heads) {
		StringName u = E;
		float start_from = origin.y + new_positions[E].y;
		do {
			Vector2 cal_pos;
			cal_pos.y = start_from + (real_t)inner_shift[u];
			new_positions.insert(u, cal_pos);
			u = align[u];
		} while (u != E);
	}
	
	float start_from = origin.x;
	float largest_node_size = 0.0f;
	for (unsigned int i = 0; i < layers.size(); i++) {
		Vector<StringName> layer = layers[i];
		for (int j = 0; j < layer.size(); j++) {
			float current_node_size = Object::cast_to<GraphNode>(node_names[layer[j]])->get_size().x;
			largest_node_size = MAX(largest_node_size, current_node_size);
		}
		for (int j = 0; j < layer.size(); j++) {
			float current_node_size = Object::cast_to<GraphNode>(node_names[layer[j]])->get_size().x;
			Vector2 cal_pos = new_positions[layer[j]];
			if (current_node_size == largest_node_size) {
				cal_pos.x = start_from;
			} else {