allow class names to change their cases.

we shall mark the new name valid if the duplicated class we found(which was
loaded by name case-insensitively) is the same one that is going to change.

an edge case to note: our old test used the same RT::Class object to try
creating another duplicated class, which breaks new code. but this is very
rare in real world and should be avoided.
Merge branch '4.0/allow-class-to-change-name-cases' into 4.0-trunk