Use versioned preprocessed.aidl

Generates versioned preprocessed.aidl files and use them for "versioned
imports".

For example, when a module 'foo' has two versions: [1,2], three
preprocessed.aidl files are generated: [1,2,3(tot)].

This ensures that a module with versioned imports can't refer newer
symbols(types or consts).

Bug: 189288369
Bug: 189728905
Test: m (w/ soong tests)
Change-Id: Ie9e82b47ee0ffc979dd316638c19a5b44726fadf
diff --git a/build/aidl_interface_backends.go b/build/aidl_interface_backends.go
index bd17c33..9958c1c 100644
--- a/build/aidl_interface_backends.go
+++ b/build/aidl_interface_backends.go
@@ -328,7 +328,7 @@
 	return name + "-V" + version
 }
 
-func (i *aidlInterface) srcsForVersion(mctx android.LoadHookContext, version string) (srcs []string, aidlRoot string) {
+func (i *aidlInterface) srcsForVersion(mctx android.EarlyModuleContext, version string) (srcs []string, aidlRoot string) {
 	if version == i.nextVersion() {
 		return i.properties.Srcs, i.properties.Local_include_dir
 	} else {