Implement tab context menu option to add tab(s) to new group.
go/chrome-tab-groups-design

This CL is part of the prototype of the above-described tab groups
feature.  The prototype will allow users to create and manipulate groups
primarily via tab context menus, and will display tab group affiliation
in the tabstrip.  Future work will include persisting and syncing groups,
manipulating groups via tab dragging, and a dropdown menu for the group
headers.

Adds a new class, TabGroupData, to model a tab group, and an association
between tabs and their groups in TabStripModel via a new field in
WebContentsData.  Adds a new entry to the tab's context menu to add the
tab(s) to a new group.

Bug: 905491
Change-Id: I0bccd90326c822fbca92e8544051995ea291a332
Reviewed-on: https://chromium-review.googlesource.com/c/1362435
Commit-Queue: Taylor Bergquist <tbergquist@chromium.org>
Reviewed-by: Jesse Doherty <jwd@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Reviewed-by: Erik Chen <erikchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621037}
10 files changed