Revert "Move scm.py to lib/"

This reverts commit 688adfe2765e262aea9563b75a212e92ad35acfc.

Reason for revert: breaks try jobs

Original change's description:
> Move scm.py to lib/
>
> It belongs there.
>
> Change-Id: I286b50c43c587c39557fc508175efbd4b0f51d51
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4289680
> Reviewed-by: Joanna Wang <jojwang@chromium.org>
> Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>

Change-Id: I662907b8bb4b2e7db82409bd34c3905db7961a12
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4300261
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
diff --git a/gclient_utils.py b/gclient_utils.py
index d16e77b..6a1659d 100644
--- a/gclient_utils.py
+++ b/gclient_utils.py
@@ -38,8 +38,6 @@
   import queue
   import urllib.parse as urlparse
 
-from lib import utils
-
 
 # Git wrapper retries on a transient error, and some callees do retries too,
 # such as GitWrapper.update (doing clone). One retry attempt should be
@@ -214,14 +212,19 @@
     sys.exit(1)
 
 
-# TODO(sokcevic): remove the usage of this
 def FileRead(filename, mode='rbU'):
-  return utils.FileRead(filename, mode)
+  # mode is ignored now; we always return unicode strings.
+  with open(filename, mode='rb') as f:
+    s = f.read()
+  try:
+    return s.decode('utf-8', 'replace')
+  except (UnicodeDecodeError, AttributeError):
+    return s
 
 
-# TODO(sokcevic): remove the usage of this
 def FileWrite(filename, content, mode='w', encoding='utf-8'):
-  return utils.FileWrite(filename, content, mode, encoding)
+  with codecs.open(filename, mode=mode, encoding=encoding) as f:
+    f.write(content)
 
 
 @contextlib.contextmanager