Reland [sms] Implement AbortController for SMSReceiver API

This change allows developers to use the SMS Receiver API with the Abort
Controller to cancel once the API is called. This will help developers with
flows for retrying and sending a new code and they want to abort the previous
call they made to the API. If the InfoBar is up during abort, it will
leave the InfoBar open while returning an AbortError to the website. If
another request is made while the InfoBar for 1st request is still open (after
abort), upon clicking 'Verify' the SMS retrieved for the 1st request will
return to the 2nd request.

Original CL: https://crrev.com/c/1866914
Revert CL: https://crrev.com/c/1930275
Failure ticket: https://crbug.com/1027386

Failure locally reproducible with following test command:
python testing/scripts/run_isolated_script_test.py third_party/blink/tools/run_web_tests.py  -t LinuxTest third_party/blink/web_tests/external/wpt/sms/interceptor.https.html --isolated-script-test-output=output.json --isolated-script-test-perf-output=perftest-output.json --additional-expectations third_party/blink/web_tests/LeakExpectations --enable-leak-detection

Bug: 976401
Change-Id: I9b1208a6cf9c05185fa734809ab275235238cf4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1929864
Reviewed-by: Reilly Grant <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Commit-Queue: Ayu Ishii <[email protected]>
Cr-Commit-Position: refs/heads/master@{#718954}
13 files changed