Fix exported include dirs

Exported include dirs were only being copied to the build flags
in ccDynamic.  Move the copy to after collectDeps is run so it
picks up the extra includes from all the overriden functions.

Also check exported include dirs of shared library dependencies
of static libraries.

Change-Id: Idb94277f88bbb10869e72011113df57f586274de
diff --git a/cc/cc.go b/cc/cc.go
index f76706b..d27bdd0 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -313,6 +313,8 @@
 		return
 	}
 
+	flags.includeDirs = append(flags.includeDirs, deps.includeDirs...)
+
 	objFiles := c.compileObjs(ctx, flags, deps)
 	if ctx.Failed() {
 		return
@@ -798,8 +800,6 @@
 		}
 	})
 
-	flags.includeDirs = append(flags.includeDirs, deps.includeDirs...)
-
 	return deps, flags
 }
 
@@ -877,6 +877,11 @@
 			}
 		}
 
+		// Collect exported includes from shared lib dependencies
+		sharedLibNames := c.properties.Shared_libs
+		_, _, newIncludeDirs := c.collectDepsFromList(ctx, sharedLibNames)
+		deps.includeDirs = append(deps.includeDirs, newIncludeDirs...)
+
 		return deps, flags
 	} else if c.libraryProperties.IsShared {
 		return c.ccDynamic.collectDeps(ctx, flags)