[Bundles] Use Placeholders for AR Native Code Inclusion.

This CL makes ar_module_tmpl use placeholders where appropriate,
and also refactors how upstream bundles uses "build switches"
  * android_64bit_target_cpu,
  * is_64_bit_browser,
  * build_apk_secondary_abi,
  * include_32_bit_webview,
to compute "module assignments"
  * loadable_modules,
  * secondary_abi_loadable_modules,
  * native_lib_placeholders,
  * secondary_native_lib_placeholders,
for native code inclusion.

Details:
* Outer template: Wrap non-global built switches above, i.e.,
  {is_64_bit_browser, include_32_bit_webview}, into scope
  native_switches, which is then passed to module templates that need to
  include native code.
* Module templates (currently only AR):
  * Specify {native_modules_if_32_bit, native_modules_if_64_bit}.
  * Forward native_switches to inner template.
* Inner template: Perform the computation:
  * Decision logic: Compute intermediate variables.
  * Realization logic: Compute "module assignments".
    * Behavior change: Specify names for dummy placeholders.
* Still need to support the old flow to support downstream templates.

Bug: 930874
Change-Id: I5576490c095a1e3d2337884051c9aff8e96ef2a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1536079
Commit-Queue: Samuel Huang <huangs@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Tibor Goldschwendt <tiborg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#645387}
3 files changed