Fixes #788. Uses two different types of events whether the event goes through the CompletionQueue or not. CompletionQueueRpcEvent is again a member of Rpc.