Bugfix: Host fragments could not be accessed properly through Skylark.

RuleContext returned fragments for the target configuration, even when Skylark requested fragments for the host configuration.
This Cl solves this bug. Since injecting a custom BuildConfiguration into out tests is surprisingly difficult, I tested this fix manually:

I wrote a custom bzl file with

def custom_rule_impl(ctx):
  print("target = {}, host = {}".format(ctx.fragments.cpp.cpu, ctx.host_fragments.cpp.cpu))

and built the rule with --cpu ppc.

Output before the fix:  target = ppc, host = ppc.
Output after the fix:   target = ppc, host = k8.

--
MOS_MIGRATED_REVID=106479714
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 9d21ec6..12916b3 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
@@ -284,7 +284,7 @@
         + "in %s configuration in order to access it.%s",
         rule.getRuleClass(), name, FragmentCollection.getConfigurationName(config),
         additionalErrorMessage);
-    return getConfiguration().getFragment(fragment);
+    return getConfiguration(config).getFragment(fragment);
   }
 
   @Nullable
@@ -295,7 +295,8 @@
 
   @Nullable
   public Fragment getSkylarkFragment(String name, ConfigurationTransition config) {
-    Class<? extends Fragment> fragmentClass = getConfiguration().getSkylarkFragmentByName(name);
+    Class<? extends Fragment> fragmentClass =
+        getConfiguration(config).getSkylarkFragmentByName(name);
     if (fragmentClass == null) {
       return null;
     }