[chrome:omnibox] Add buttons to copy response data.

Two copy buttons are added. The first copies the visible table as text; display options, which affect the visibility of tables, columns, rows, also affect what text is copied. The second copies the responses as JSON.

Also, as this CL introduces a second outputs interface, I took this opportunity to consolidate this new interface and the previous OutputController (which served as an interface for OmniboxOutput) into a single interface, OmniboxController, which will be responsible for interfacing to individual Output classes responsible for:
1 render tables from responses
2 control visibility based on display options
3 control visibility and coloring based on search text
4 export/copy output
5 preserve inputs and reset default inputs
6 export/import inputs

Bug: 891303
Change-Id: I1b6e10e6aa2213912235863f61163c9d8e9f66f7
Reviewed-on: https://chromium-review.googlesource.com/c/1329842
Commit-Queue: manuk hovanesian <manukh@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: Tommy Li <tommycli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608370}
6 files changed