bzl/rules.bzl: fix incompatibilities

Counteracts:

 - --incompatible_depset_is_not_iterable=false
 - --incompatible_new_actions_api=false

Change-Id: Ib0e63b717f643e4e3b57684b53d3165d5925daac
diff --git a/bzl/rules.bzl b/bzl/rules.bzl
index 996a07b..6b26487 100644
--- a/bzl/rules.bzl
+++ b/bzl/rules.bzl
@@ -1,11 +1,11 @@
 def _copy_go_binary_impl(ctx):
     output = ctx.actions.declare_file(ctx.label.name)
-    for f in ctx.attr.src.files:
+    for f in ctx.attr.src.files.to_list():
         # go_binary rules have two outputs, a library and the binary itself.
         # The following is a horrible hack to avoid copying the library.
         if f.path.endswith(".a"):
             continue
-        ctx.action(
+        ctx.actions.run_shell(
             inputs=[f],
             outputs=[output],
             mnemonic="CopyGoBinary",