cros_setup_toolchains: fix binary file reading for real

Indexing a bytes array yields ints in Python 3 unlike Python 2.
Tweak the syntax to always returns bytes, and add some unittests
to make sure the change works under both versions now.

BUG=chromium:997354
TEST=`cros_setup_toolchains --create-packages` works w/python3

Change-Id: Ia29e30053c138a66c2bbb56682c2b9d1badf81d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1960551
Reviewed-by: Michael Mortensen <mmortensen@google.com>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/cros_setup_toolchains.py b/scripts/cros_setup_toolchains.py
index f147785..7f9d4cc 100644
--- a/scripts/cros_setup_toolchains.py
+++ b/scripts/cros_setup_toolchains.py
@@ -855,9 +855,9 @@
     data = f.read(20)
     # Check the magic number, EI_CLASS, EI_DATA, and e_machine.
     return (data[0:4] == b'\x7fELF' and
-            data[4] == b'\x02' and
-            data[5] == b'\x01' and
-            data[18] == b'\x3e')
+            data[4:5] == b'\x02' and
+            data[5:6] == b'\x01' and
+            data[18:19] == b'\x3e')
 
 
 def IsPathPackagable(ptype, path):