Use a (mostly) hermetic Python interpreter

It still requires python to be installed on the host to run the wrapper
scripts, but it's close to being fully hermetic.

This also requires/enables the following changes, unfortunately all at
the same time:
 * Use a downloaded f2py
 * Use a downloaded scipy/numpy/matplotlib
 * Fix a few things that don't run with the python version in their #!
 * Stop using bazel-generated __init__.py files, because those interfere
   with importing matplotlib nicely

Change-Id: Ife280464613d67cece9587b7d947f0b1d5466d7e
diff --git a/aos/BUILD b/aos/BUILD
index 89948ab..2e73c51 100644
--- a/aos/BUILD
+++ b/aos/BUILD
@@ -1,62 +1,71 @@
 filegroup(
-  name = 'prime_binaries',
-  visibility = ['//visibility:public'],
-  srcs = [
-    '//aos/linux_code:core',
-    '//aos/common/logging:log_streamer',
-    '//aos/common/logging:log_displayer',
-    '//aos/linux_code/starter',
-  ],
-)
-filegroup(
-  name = 'prime_start_binaries',
-  visibility = ['//visibility:public'],
-  srcs = [
-    '//aos/common/logging:binary_log_writer',
-  ],
+    name = "prime_binaries",
+    srcs = [
+        "//aos/common/logging:log_displayer",
+        "//aos/common/logging:log_streamer",
+        "//aos/linux_code:core",
+        "//aos/linux_code/starter",
+    ],
+    visibility = ["//visibility:public"],
 )
 
 filegroup(
-  name = 'prime_binaries_stripped',
-  visibility = ['//visibility:public'],
-  srcs = [
-    # starter is hard coded to look for a non-stripped core...
-    '//aos/linux_code:core',
-    '//aos/common/logging:log_streamer.stripped',
-    '//aos/common/logging:log_displayer.stripped',
-    '//aos/linux_code/starter',
-  ],
+    name = "prime_start_binaries",
+    srcs = [
+        "//aos/common/logging:binary_log_writer",
+    ],
+    visibility = ["//visibility:public"],
 )
+
 filegroup(
-  name = 'prime_start_binaries_stripped',
-  visibility = ['//visibility:public'],
-  srcs = [
-    '//aos/common/logging:binary_log_writer.stripped',
-  ],
+    name = "prime_binaries_stripped",
+    srcs = [
+        # starter is hard coded to look for a non-stripped core...
+        "//aos/linux_code:core",
+        "//aos/common/logging:log_streamer.stripped",
+        "//aos/common/logging:log_displayer.stripped",
+        "//aos/linux_code/starter",
+    ],
+    visibility = ["//visibility:public"],
+)
+
+filegroup(
+    name = "prime_start_binaries_stripped",
+    srcs = [
+        "//aos/common/logging:binary_log_writer.stripped",
+    ],
+    visibility = ["//visibility:public"],
 )
 
 cc_library(
-  name = 'once',
-  visibility = ['//visibility:public'],
-  hdrs = [
-    'once.h',
-  ],
-  srcs = [
-    'once-tmpl.h',
-  ],
-  deps = [
-    '//aos/common:gtest_prod',
-    '//aos/common:type_traits',
-  ],
+    name = "once",
+    srcs = [
+        "once-tmpl.h",
+    ],
+    hdrs = [
+        "once.h",
+    ],
+    visibility = ["//visibility:public"],
+    deps = [
+        "//aos/common:gtest_prod",
+        "//aos/common:type_traits",
+    ],
 )
+
 cc_test(
-  name = 'once_test',
-  visibility = ['//visibility:public'],
-  srcs = [
-    'once_test.cc',
-  ],
-  deps = [
-    '//aos/testing:googletest',
-    '//aos:once',
-  ],
+    name = "once_test",
+    srcs = [
+        "once_test.cc",
+    ],
+    visibility = ["//visibility:public"],
+    deps = [
+        "//aos:once",
+        "//aos/testing:googletest",
+    ],
+)
+
+py_library(
+    name = "python_init",
+    srcs = ["__init__.py"],
+    visibility = ["//visibility:public"],
 )