Make Python rules in Bazel actually work.

In particular: add a BazelPythonSemantics implementation and the respective RuleConfiguredTarget factories, rule class definitions and hook them up with BazelRuleClassProvider. Add implicit dependencies (2to3 is just a stub script for now that always fails) and a tiny exampe.

--
MOS_MIGRATED_REVID=89691827
diff --git a/tools/python/BUILD b/tools/python/BUILD
new file mode 100644
index 0000000..f489fe1
--- /dev/null
+++ b/tools/python/BUILD
@@ -0,0 +1,6 @@
+package(default_visibility = ["//visibility:public"])
+
+sh_binary(
+    name = "2to3",
+    srcs = ["2to3.sh"],
+)