x86/x86-64: Refactor `LocationSummary` construction.

Add `LocationSummary::Create()` that encapsulates both
allocation and construction of the `LocationSummary`.
This prepares for rewriting the `LocationSummary` to
allocate the input locations together with the main
`LocationSummary` object to reduce memory usage.

Add `LocationSummary::CreateNoCall()` as a short helper that
explicitly signals "no-call" summary without passing the
verbose `LocationSummary::kNoCall` or relying on a default
`call_kind = kNoCall`. This prepares for moving environment
locations from `HEnvironment` to `LocationSummary`. The
"no-call" summary shall not need to check for environment.

Use these new functions in x86/x86-64 codegen and intrinsic
generators. Cache the arena allocator in location builders
for brevity and faster access. Corresponding changes for
other architectures shall follow separately.

Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 181943478
Flag: EXEMPT refactor
Change-Id: I5c91be3b8a1eb84d0909f1f57c3f408eab4ef989
9 files changed