Structure layout logic cleanup.

Do not run special x86-32 transformations when slang has explicitly
padded structs.

Verify that front end (Module) and back end (TargetMachine) agree on
the layout of every exported struct type.

Cannot build without slang change:
  https://android-review.googlesource.com/#/c/299366/

Bug: http://b/29154200
Bug: http://b/28070272

Test: (aosp_x86-eng emulator, full_fugu-eng, aosp_angler-eng) x
      (RsTest 32-bit, RsTest 64-bit, cts -m RenderscriptTest)
      tests/run-lit-tests.sh
  Tried (unmodified slang,   modified bcc) and
        (  modified slang, unmodified bcc) and
        (  modified slang,   modified bcc)
  By instrumenting modified bcc, confimed that:
  - Special x8632 layout transformations only run with unmodified slang,
    and only when test is compiled for x8632.
  "Modified slang" is a forthcoming slang change to add explicit padding
  to struct types:
    https://android-review.googlesource.com/#/c/299366/

Change-Id: I536497d1152995bf93a48dc83527d1575d5f947e
8 files changed