cbui: fold ExternalProtocol delegates together

This layer of delegation originally existed to allow for both Cocoa and Views
versions of this dialog to share logic. Since the Cocoa versions are now gone,
the remaining logic can be folded into the Views versions.

This change:
1) Adds ExternalProtocolHandler::Delegate::OnSetBlockState, to allow tests to
   listen directly for block state changes;
2) Folds the body of ExternalProtocolDialogDelegate into ExternalProtocolDialog;
3) Removes ProtocolDialog (interface only) and ExternalProtocolDialog (interface
   & implementation)
4) Reworks the ExternalProtocolDialogDelegate browser tests to test "one layer
   up" - instead of using a test delegate for the dialog, they use the normal
   production behavior of the dialog, but hook into the ExternalProtocolHandler
   system at the ExternalProtocolHandler::Delegate layer. This provides better
   fidelity to the production behavior in the test and simplifies the tests
   considerably.

Next steps here:
As the ongoing DialogDelegate refactor proceeds (see https://crbug.com/1011446),
ExternalProtocolDialog will shrink further until it contains only Accept and
Cancel.

Bug: None
Change-Id: I90518f8086db4127d41776ad086210c6db9d7462
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1872411
Commit-Queue: Elly Fong-Jones <[email protected]>
Reviewed-by: Mustafa Emre Acer <[email protected]>
Cr-Commit-Position: refs/heads/master@{#707922}
10 files changed