TWeakPtrVariant

`[TWeakPtrVariant](API\Runtime\Core\TWeakPtrVariant)_ and `[TStrongPtrVariant](API\Runtime\Core\TStrongPtrVariant)_ are particularly useful for "interfaces" in areas where UObjects and non-UObjects exist to hold onto a "smart" pointer to the Interface, rather than needing to keep track of the implementing class to check validity and manually cast `[TWeakPtrVariant](API\Runtime\Core\TWeakPtrVariant)_ will be either a `[TWeakObjectPtr](API\Runtime\Core\TWeakObjectPtr)_ or `[TWeakPtr](API\Runtime\Core\TWeakPtr)_