If the method name is generated from the request type, there is a
possibility of a clash if two methods take the same request type. For
example, if two unique methods take the request type
"CreateRoleRequest", both methods will be generated with the method name
"create_role", which causes generation to fail with an exception.
This commit resolves that issue by first generating a method name from
the request type of each method, and keeping track of which names are
duplicates. For methods that will generate a duplicate name from the
request type, the name is generated from the method ID instead (the
resulting name is guaranteed to be unique).
JSON has been part of the ruby stdlib since 1.9.0 (see
https://github.com/ruby/ruby/commit/af1c4167), and the latest version of
google-api-client requires ruby 2.0 or better so we can assume it's available