[gclient_scm] Update _CheckClean() to use `git status`

This change updates the `_CheckClean()` fn to use `git status` instead
of `git update-index` and `git diff-index`. The `_CheckClean()` fn is
run during every update and this change reduces the subprocess calls
made by it by half.

Change-Id: Ie9a23b0bce748bec4cac88df09655569e88e4841
Bug: 1501984
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5076224
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>
diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py
index 5f1adf1..005518b 100755
--- a/tests/gclient_scm_test.py
+++ b/tests/gclient_scm_test.py
@@ -584,7 +584,7 @@
             scm.update(options, (), [])
         self.assertEqual(
             e.exception.args[0], '\n____ . at refs/remotes/origin/main\n'
-            '\tYou have unstaged changes.\n'
+            '\tYou have uncommitted changes.\n'
             '\tcd into ., run git status to see changes,\n'
             '\tand commit, stash, or reset.\n')