fix: "no_apex" can be put in defaults

Currently, putting no_apex in defaults module doesn't work.

To fix this,
* 'no_apex' property is added as 'defaultable'.
* apex module doesn't follow beyond 'defaults' module.

Bug: 141560644
Test: m (soong tests added)
Change-Id: I8410785f7f83d843689a33b1241d74086c6a7671
diff --git a/apex/apex.go b/apex/apex.go
index 6024deb..d078724 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -1170,6 +1170,8 @@
 					}
 				} else if am.CanHaveApexVariants() && am.IsInstallableToApex() {
 					ctx.ModuleErrorf("unexpected tag %q for indirect dependency %q", depTag, depName)
+				} else if depTag == android.DefaultsDepTag {
+					return false
 				} else if am.NoApex() && !android.InList(depName, whitelistNoApex[ctx.ModuleName()]) {
 					ctx.ModuleErrorf("tries to include no_apex module %s", depName)
 				}