Allow calling a private method with `self.`
There is an inconsistency between calling a private attribute writer being allowed with
self.value = syntax and
self.value not being allowed on a private attribute writer.
Calling a private method in this way can be useful when trying to assign the return value of this private method to a local variable with the same name.
The attached patch handles this by compiling the calling into a function call by using the
VM_CALL_FCALL flag, so it is as if the call were made without the
self. prefix, except it won't be confused with local variables at the VM instruction level. It is also compiled like an assignment call, except I didn't use the
COMPILE_RECV macro, since that would remove the
CHECK macro usage around the