Modify the Generate phase to call GenerateBuildActions inside a
goroutine to allow parallization. All modules from a single
moduleGroup are called from a single goroutine, and the goroutines
that processed all dependencies must have finished, so the only
change to the semantics of GenerateBuildActions implementations
is around access to globals. Locks are added to the lazily
created package context variables and to the live tracker.
Reduces run time by ~33%.
Change-Id: I62a515acf86f1dcecb093ded83444b920ff603be
This change replaces the automatic caller package divination with a
PackageContext object that must be explicitly passed in by callers.
Change-Id: I139be29ecf75a7cf8488b3958dee5e44363acc22