Update generator to deal with uncommon discovery aspects

The changes include:
- Use a checked-in version of the disocvery API (includes a RestMethod.restPath
  field, which is sometimes used instead of RestMethod.path)
- Try to not use deprecated baseUrl/basePath fields
- Generate dummy enum descriptions if no descriptions are available
- add int16 to number format types
- support longer chains for forward references using $ref
- allow underscores in variable names of URI Template variables

R=sgjesse@google.com

Review URL: https://codereview.chromium.org//559313003