If cppclass is redefined, make sure the this pointer enters the correct scope

If the change is not made, in case of a redefined cppclass, the first CppClassScope gets both this pointers declared, while the second CppClassScope is left without a this pointer.  The consequence is very confusing error messages like "undeclared name not builtin: this" or "Accessing Python attribute not allowed without gil'" (depending on gil).

Even though it is currently not very useful to declare/define a cppclass twice, I think this should be fixed, because in fact the wrong scope is modified, the error message is confusing, and in the future declaring and defining a cppclass may actually be useful (I added a test case with a suggestive syntax).