Adds getShareableArtifact to ActionConstructionContext interface.

In C++ we need to call this method but we won't have the rule context
available from Skylark. Instead we will have ctx.actions from which we can get
the ActionConstructionContext.

More in depth discussion in:
https://docs.google.com/document/d/1_irTE1a8aTg8Hhf5mmlEXsFcwOw6-hz3a8FxufCyVKA/edit?ts=5bd862f7#heading=h.7795zogmlqtv

RELNOTES:none
PiperOrigin-RevId: 219440126
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index d59175c..113d995 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -665,14 +665,7 @@
         relative, getConfiguration().getGenfilesDirectory(rule.getRepository()));
   }
 
-  /**
-   * Returns an artifact that can be an output of shared actions. Only use when there is no other
-   * option.
-   *
-   * <p>This artifact can be created anywhere in the output tree, which, in addition to making
-   * sharing possible, opens up the possibility of action conflicts and makes it impossible to infer
-   * the label of the rule creating the artifact from the path of the artifact.
-   */
+  @Override
   public Artifact getShareableArtifact(PathFragment rootRelativePath, ArtifactRoot root) {
     return getAnalysisEnvironment().getDerivedArtifact(rootRelativePath, root);
   }