Fix calling (raw_)rpc wrapped methods

Make it possible to call methods wrapped with @rpc and @raw_rpc as
any normal methods, by keeping the normal behaviour of Python methods
and any RPC call must be by invoking method.rpc_call(channel, ...).
It is related to the comment below, making an abstract class public is much easier to reason about, instead of exposing implementation. So that's why I like them split.