core: add checked_ptr
core: add checked_ptr

seastar::checked_ptr class is a wrapper class that may be used with any pointer type
(smart like std::unique_ptr or raw pointers like int*).

The seastar::checked_ptr object will invoke the NullDerefAction functor if
it is dereferenced when the underlying pointer is not engaged.

It may still be assigned, compared to other seastar::checked_ptr objects or
moved without limitations.

The default NullDerefAction will throw a  seastar::default_null_deref_action exception.

Signed-off-by: Vlad Zolotarov <976c0f8d0852ed6439ad273880b400a75a7c41d0@scylladb.com>

syuu1228/seastar,syuu1228/seastar,scylladb/seastar,dreamsxin/seastar,scylladb/seastar,avikivity/seastar,cloudius-systems/seastar,avikivity/seastar,syuu1228/seastar,avikivity/seastar,dreamsxin/seastar,scylladb/seastar,dreamsxin/seastar,cloudius-systems/seastar,cloudius-systems/seastar