Rewrite the RB Gateway support to leverage the new client support.

Review Request #10629 — Created July 16, 2019 and submitted

Review Board

Review Board 4.0 has a better architecture for writing hosting service
client implementations, which takes care of a lot of cross-Python
compatibility issues, simplifies code, and reduces the need for certain
hacks and workarounds and specialized HTTP access wrappers we had

This change rewrites RB Gateway to leverage the new client support. The
ReviewBoardGatewayClient class is responsible now for all API
communication, handling errors and headers in consistent ways. The
ReviewBoardGateway hosting service class simply calls into it and
converts payload results into Review Board objects.

This will improve maintenance as we go forward, and also takes care of
some differences in behavior between Python 3.x releases that we were
previously hitting.

Unit tests pass.

Manually tested authenticating, linking a repository, browsing commits,
posting for review, and viewing diffs. Aside from some bugs within
RB Gateway itself, this all works.

  1. Ship It!
Review request changed

Status: Closed (submitted)

Change Summary:

Pushed to release-4.0.x (1a27854)