Change transfer mode of marshalling of struct fields 2c mode
Change transfer mode of marshalling of struct fields 2c mode

Previously, we hardcoded transfer=none.  Now we change it to
transfer=full, because typically the target struct takes over the
ownership and it should not depend on the source to be still alive.
It is still not ideal, just heuristics.  In ideal world, we'd glean
transfer from GI, but unfortunately, GI does not provide transfer mode
for fields.

Note that transfer for 2lua is still transfer_none, because we don't
want to steal values from fields when reading them.

pavouk/lgi,psychon/lgi