[Android] Componentize ExternalNavigation{Delegate, Handler}

This CL componentizes ExternalNavigation{Delegate, Handler} for reuse
by WebLayer. After a long series of leadup CLs cleaning the files of
//chrome dependencies, the componentization is straightforward.

In this CL we avoid changing any names within the moved files to keep
the CL as targeted as possible. A followup CL will generalize
references to "Chrome" in names and comments within these files.
Followup work will also componentize ExternalNavigationHandlerTest.

This CL also tightens an overly-aggressive presubmit check that fired
here.

Bug: 1031465
Change-Id: Ic50518242c62690cf57249a613860332ef13e0f9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2096702
Reviewed-by: Andrew Grieve <[email protected]>
Reviewed-by: Michael Thiessen <[email protected]>
Reviewed-by: Ted Choc <[email protected]>
Commit-Queue: Colin Blundell <[email protected]>
Cr-Commit-Position: refs/heads/master@{#749645}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 9be12773..1bc371d 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -85,7 +85,7 @@
 # * Sequence of path or filename exceptions to this rule
 _BANNED_JAVA_IMPORTS = (
     (
-      'java.net.URI',
+      'java.net.URI;',
       (
        'Use org.chromium.url.GURL instead of java.net.URI, where possible.',
       ),