Basically there's no need to have two atoms for versioned class, one is enough and it is the base atom, as the versioned name doesn't seem to have a visible atom. Tests show that class atom also isn't allowed to change, to the contrary to what we currently allow.
Then versioned name still must be used used for actual class identification and would be stored in shared object as a string, regardless of whether base atom is integral or not (and tests show that integral atoms may still be used with versioned classes, which then require a string for the versioned class name).
Then, `NtUserGetClassName` as well as `find_class` can be implemented by directly reading the string from the class shared object without having to check for atom nature / versioned class nature.