IO: Introduced *_base classes

It's now simpler to be their successors, as there is no more
problems connected with std::enable_shared_from_this