Add UI to toggle Caret Browsing

Borrowed heavily from the work Bruce Long did last year in
http://crrev.com/c/1666567 (see patchset 18), this introduces
UI to toggle caret browsing, now that we've gone through UI
review (see go/caret-browsing-ux for approved mocks/strings).

1. Toggles caret browsing with F7 on Mac/Win/Linux, and
   Ctrl+Search+7 on Chrome OS.
2. When pressing the accelerator, shows a confirmation dialog
   with a checkbox that allows you to skip the dialog
   next time.
3. No dialog to disable caret browsing, it just turns off.
4. Caret browsing always resets to false when you start the
   browser (unless you use the command-line flag, which is
   still supported it and now turns it on by default).
   That's so users don't get confused and forget they had
   it on.
5. Also allows you to toggle in settings.

Bug: 977390

AX-Relnotes: Implements UI to toggle Caret Browsing in settings or with F7
Change-Id: Ib8debb6f4154ae5f4a1083db4d8af6ade56d2b3d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2320127
Commit-Queue: Dominic Mazzoni <[email protected]>
Reviewed-by: Ilya Sherman <[email protected]>
Reviewed-by: Jochen Eisinger <[email protected]>
Reviewed-by: Tom Sepez <[email protected]>
Reviewed-by: Peter Kasting <[email protected]>
Reviewed-by: Tommy Li <[email protected]>
Cr-Commit-Position: refs/heads/master@{#793772}
diff --git a/chrome/browser/ui/browser_commands.h b/chrome/browser/ui/browser_commands.h
index 1b08601f..caf7a7f 100644
--- a/chrome/browser/ui/browser_commands.h
+++ b/chrome/browser/ui/browser_commands.h
@@ -202,6 +202,7 @@
 // the tabbed Browser.
 Browser* OpenInChrome(Browser* hosted_app_browser);
 bool CanViewSource(const Browser* browser);
+void ToggleCaretBrowsing(Browser* browser);
 
 base::Optional<int> GetKeyboardFocusedTabIndex(const Browser* browser);