More rubocop

@localshred follow up from the last PR. This gets us nearly all the way to rubocop-completeness, but more importantly, it makes the tests run again, which I broke in the last PR :(
`#class_eval` is slight more resilient: in the event that `Protobuf::Rpc::Client` someday because a module, it will still work, while `class Protobuf::Rpc::Client` will not. It also makes it explicit that this block is not defining `Protobuf::Rpc::Client`, but is monkey-patching it