Sema: move all in-memory coercion logic to InternPool

Previously, this logic was split between Sema.coerceValueInMemory and
InternPool.getCoerced. This led to issues when trying to coerce e.g. an
optional containing an aggregate, because we'd call through to
InternPool's version which only recurses on itself so could not coerce
aggregates. Unifying them is fairly simple, and also simplified a bit of
logic in Sema.

Also fixes a key lifetime bug in aggregate coercion.
8a92beb088mlugg committed on 6/13/2023, 8:48:21 PMparent588f45a
2 files changedLine totals unavailable