Refactored the externally defined SetThis function to be more explicit as the setter of the CPointer property

There was no good reason for the SetThis function, moving it to the property setter is more C#ish and is still only accessible by derived classes.