Introduce remotable attribute to repository_rule

repository_rule gets a new attribute remotable=(True|False). Targets
of repository_rule get a new magic (always there) attribute
exec_properties.

The new attributes are guarded behind --experimental_repo_remote_exec.

This change is in preparation for adding remote execution capabilities
to repository_context.execute().

RELNOTES: None
PiperOrigin-RevId: 281275185
diff --git a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
index 8dc3743..e2e1f51 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/SkylarkSemanticsConsistencyTest.java
@@ -133,6 +133,7 @@
         "--experimental_starlark_unused_inputs_list=" + rand.nextBoolean(),
         "--incompatible_allow_tags_propagation=" + rand.nextBoolean(),
         "--experimental_cc_shared_library=" + rand.nextBoolean(),
+        "--experimental_repo_remote_exec=" + rand.nextBoolean(),
         "--incompatible_bzl_disallow_load_after_statement=" + rand.nextBoolean(),
         "--incompatible_depset_for_libraries_to_link_getter=" + rand.nextBoolean(),
         "--incompatible_depset_union=" + rand.nextBoolean(),
@@ -182,6 +183,7 @@
         .experimentalStarlarkUnusedInputsList(rand.nextBoolean())
         .experimentalAllowTagsPropagation(rand.nextBoolean())
         .experimentalCcSharedLibrary(rand.nextBoolean())
+        .experimentalRepoRemoteExec(rand.nextBoolean())
         .incompatibleBzlDisallowLoadAfterStatement(rand.nextBoolean())
         .incompatibleDepsetForLibrariesToLinkGetter(rand.nextBoolean())
         .incompatibleDepsetUnion(rand.nextBoolean())