std::shared_ptr support
std::shared_ptr<T> is defined as #Nullable and uses the default implementation of ozo::is_null().
Function ozo::allocate_nullable() implementation is specialized via std::allocate_shared().
The ozo::unwrap() function is implemented via the dereference operator.