Remove legacy Objective-C API.
Replace all uses of Protocol* to the class.
Use NSObject as the base class for Protocol.