Correctly set the `ptr_for_ref` arg on `write_c_type` calls in enum printing
This avoids adding references to opaque structs in enum fields,
where we should, of course, map them as owned opaque structs.
It does generate some difficult-to-parse-by-downstream-bindings
code, which is addressed in a later commit by adding documentation.
Note that it also relies on the types being mapped differently
being opaque as it now needs logic to map a reference to a
non-reference with `is_owned` unset.