Use the generated C# types in properties and methods of C# wrappers

Many more native UObject types are wrapped now because they no longer
have to have any exportable properties or functions in order for a
wrapper to be generated. This change was made because some of these
types that weren't previously wrapped were still used as function
parameters in other wrappers. Now there's the opposite problem, too many
types are being wrapped, so that will need to be fixed at some point.

Still need to make sure the native objects are kept alive while
managed objects reference them.