[Chapel Merge] Dyno: Various copy-elision and split-init fixes

Branch: refs/heads/main
Revision: 46bec8ec6b7ef0810b0e91ee1a4e5fd03bbb6789
Author: benharsh
Link: Dyno: Various copy-elision and split-init fixes by benharsh · Pull Request #27234 · chapel-lang/chapel · GitHub
Log Message:
Dyno: Various copy-elision and split-init fixes (#27234)

This PR started off with a simple idea: Reduce special cases for types
that do not need init/deinit.

Right now we do not sufficiently account for all cases in which a type
does not need init/deinit, meaning that sometimes we skip checks and
others we don't. Instead of incomplete skipping of checks and resolution
for the sake of simplicity, let's just make it actually work for such
types.

This also helps simplify things for typed conversion, as this commit
will cause assignment operators to be resolved and stored. Another
benefit is increased testing of copy-elision/split-init rules now that
we're testing against integers more regularly as well.

This PR required a change from using 'idToParentId' to 'ID::contains' to
account for usage in nested calls.