[Extern Generation] Add a presubmit script to check externs not being updated

Add a presubmit script that checks for when extension api files are touched, but
the corresponding extern file is not. Right now, this is very simple - it only
checks that the extern is modified in some way (doesn't validate that it's the
*right* way), and is only a warning (because sometimes api file changes don't
cause extern changes). As an improvement, we would validate that the extern
files contain the proper content - let's do that later.

This will also be rolled out piecemeal, since many APIs don't currently have a
dedicated extern file. This change only imposes the check on bluetooth (because
it was handy) - if all goes well, we'll roll this out to all api files.

Also establish a dedicated extern folder, since it's silly for chrome-generated
externs to live in third_party/.

BUG=469920

Review URL: https://codereview.chromium.org/1718243003

Cr-Commit-Position: refs/heads/master@{#378018}
diff --git a/PRESUBMIT_test_mocks.py b/PRESUBMIT_test_mocks.py
index f68c134..5230c87 100644
--- a/PRESUBMIT_test_mocks.py
+++ b/PRESUBMIT_test_mocks.py
@@ -109,6 +109,9 @@
   def LocalPath(self):
     return self._local_path
 
+  def AbsoluteLocalPath(self):
+    return self._local_path
+
   def rfind(self, p):
     """os.path.basename is called on MockFile so we need an rfind method."""
     return self._local_path.rfind(p)