Python provider is now available in Skylark

Using mandatoryProvidersList to validate python rules' dependency.
Added a SkylarkProvider named 'py' which is a SkylarkClassObject in Java and a
struct in Skylark. Native python rule and Skylark python rule should have this provider
so that they can depend on each other.

RELNOTES[NEW]: Native python rule can depend on skylark rule as long as skylark
rule provides 'py' provider.

--
MOS_MIGRATED_REVID=116241504
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
index f8923e7..1db5c46 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java
@@ -713,7 +713,9 @@
     }
 
     public Builder<TYPE> mandatoryProviders(Iterable<String> providers) {
-      mandatoryProvidersList(ImmutableList.of(providers));
+      if (providers.iterator().hasNext()) {
+        mandatoryProvidersList(ImmutableList.of(providers));
+      }
       return this;
     }