This is a follow-up to the previous commit, where the cheat code name
and the creator name have been combined into a single field.
For backwards compatibility, if an *enabled* cheat code is not found
among the available cheat codes, there will be a second attempt to
find a match by disregarding the creator name from the available Gecko
codes.
This aligns Gecko codes with Action Replay codes, where the distinction
between code name and creator name has never existed.
The main objective of the change is to address potential inconsistencies
where two Gecko codes of the same name but of different creator can
coexist in the `INI` file but cannot be individually enabled in Dolphin.
This was a valid scenario prior to these changes:
```ini
[Gecko]
$Infinite Power [Alice]
<code line 1>
<code line 2>
<code line 3>
<...>
$Infinite Power [Bob]
<code line 1>
<code line 2>
<code line 3>
<...>
[Gecko_Enabled]
$Infinite Power
```
Notice that, previously, enabled cheat codes in the `[Gecko_Enabled]`
section would only include the cheat code name excluding the creator
name (which was technically a different field in Dolphin's data
structures).
Now, the equivalent INI document lists the cheat code full name
(including the creator name), allowing both codes to be enabled
separately:
```ini
[Gecko]
$Infinite Power [Alice]
<code line 1>
<code line 2>
<code line 3>
<...>
$Infinite Power [Bob]
<code line 1>
<code line 2>
<code line 3>
<...>
[Gecko_Enabled]
$Infinite Power [Alice]
```
This also fixes https://bugs.dolphin-emu.org/issues/13695.
The read thread could call Reset, which in turn tried to join the read
thread, leading to a SIGABRT. This manifested as Dolphin consistently
crashing when disconnecting a GC adapter and having a chance of crashing
a few seconds after connecting a GC adapter.
Now that patches and codes are enabled on a case by case basis, remove patcher code blocking codes entirely in hardcore mode, and reword the warning to be more accurate.
This apparently didn't compile on macOS six years ago before c++20, but
it should be fine by now.
While I'm at it, make the constants upper case per convention.
If the host is in hardcore mode, all joining players will be set to hardcore mode; if not, all joining players will be set to softcore. This ensures all players have the same settings and remain synchroized.