has_shared_from_this and get_shared_from_this_base

Functionality to figure out the type enable_shared_from_this was templated on for
any base type of the current type.

see #47