the IUnknownRef class should be strongly typed so that we don't have to lose type safety.
we should only create swift objects when we know we have a valid winrt pointer, so anything in the guts of the projection should not be nullable, but what we return to the caller has to be