std::weak_ptr support
std::weak_ptr<T> is defined as #Nullable and uses the implementation of ozo::is_null() examing the result of std::weak_ptr::lock() method call.
The ozo::unwrap() function is implemented dereferencing the result of std::weak_ptr::lock() method call.
ozo::unwrap() from std::weak_ptr is not safe for reference holding since no object owning.