Add typo detection when lookups on SkylarkModules fail.

Also consolidate code with getattr so getattr now also gets typo detection.

PiperOrigin-RevId: 197612666
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
index 06963f5..debf9f5 100644
--- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
+++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java
@@ -1098,7 +1098,9 @@
   @Test
   public void testGetattrNoAttr() throws Exception {
     checkErrorContains(
-        "object of type 'struct' has no attribute \"b\"", "s = struct(a='val')", "getattr(s, 'b')");
+        "'struct' object has no attribute 'b'\nAvailable attributes: a",
+        "s = struct(a='val')",
+        "getattr(s, 'b')");
   }
 
   @Test