### Godot version

v4.1.stable.official [970459615]

### System information

Windows 11

### Issue description

Using `String::pad_zeros` on a string containing digits with greater length than the argument `digits` raises the error `Parameter count should be a positive number.` of `String::repeat`, because it is called with a negative parameter.
(Actually this error is not 100% correct, it should be non-negative)

4.0 Code:
https://github.com/godotengine/godot/blob/c8e0bd50c57de91c061866db1de407f2e7a74acd/core/string/ustring.cpp#L4127-L4155

Example: `"2023".pad_zeros(2)`
`begin == 0`
`end == 4`
`end - begin < p_digits == false` => No "0" is inserted, the string is returned unchanged.

4.1 Code:
https://github.com/godotengine/godot/blob/ce5c6151fc498b39fe0c188045a4685e0f627854/core/string/ustring.cpp#L4266-L4290

Example: `"2023".pad_zeros(2)`
`begin == 0`
`end == 4`
`zeros_to_add == 2 - (4 - 0) == -2`
=> `s.insert(0, String("0").repeat(-2))` is called => Error.

I don't know why this was changed, but I think ensuring that `zeros_to_add > 0` should be ensured internally and not by the user. If this condition is not fullfilled the string should be returned unchanged as in the 4.0 implementation.

### Steps to reproduce

Try my above mentioned example in 4.0 and 4.1

### Minimal reproduction project

Not necessary.
print_unicode_error(vformat("Overlong encoding (%x ...)", c));
					decode_error = true;
				}
				str_size++;
			} else {
				if ((c_start == 0xe0 && skip == 2 && c < 0xa0) || (c_start == 0xf0 && skip == 3 && c < 0x90) || (c_start == 0xf8 && skip == 4 && c < 0x88) || (c_start == 0xfc && skip == 5 && c < 0x84)) {
					print_unicode_error(vformat("Overlong encoding (%x %x ...)", c_start, c));
					decode_error = true;
				}
				if (c < 0x80 || c > 0xbf) {
					print_unicode_error(vformat("Invalid UTF-8 continuation byte (%x ... %x ...)", c_start, c), true);
					decode_ = true;
					skip = 0;
				} else {
					--skip;
				}
			}
			cstr_size++;
			ptrtmp++;
		}
		if (skip) {
			print_unicode_error(vformat("Missing %d UTF-8 continuation byte(s)", skip), true);
			decode_ = true;
		}
	}
	if (str_size == 0) {
		clear();
		return OK; // 
	}
	resize(str_size + 1);