TemplateFreeWorld - replacing compile time polymorphism with runtime pol...

...ymorphism
I don't think we need this to be a virtual destructor since I don't see anyone deleting this using a reference to `transport_factory`.