Remove `ptr` class template from the map

Some parts of the code were using `ptr` class template in order to have
access to some convenience constructors not provided by `std::shared_ptr`.
Nevertheless, the use of such non-standard type is not appropriate at all,
and therefore it must be removed.

Another related mechanism, the inheritance from `shared_by_ptr` class, has
been removed as well.

This fixes issue #26.