/changes/: Use in UI for search

Replace the old JSON-RPC interface with the new long term supported
REST API. Since this is a major change to the types being transported
over the network, make a copy of the UI code until we can replace all
existing uses of the old types in the UI code.

Unlike the old interface, the web UI client now obtains the label
information during the query and avoids a second round trip to lookup
the current approvals for each displayed change. For most users this
should improve the way the page renders. The verified and code review
columns will be populated before the table is made visible, preventing
the layout from "jumping" the way the old UI did when the 2nd RPC
finally finished and supplied the label data.

The columns in the table are drawn to match the requirements of the
submit rules that apply to each change, which makes the UI more
dynamic and does not require knowing in advance all of the valid
labels by way of the ApprovalTypes global state object. This is a nice
step towards getting rid of the hard coded approval_categories table
in the database and making the system reflect per-project rules.

Change-Id: I8d83b83e8b95bf2e6fcdfe04f5835cf97bd843b7
5 files changed