WorldObject support for std::shared_ptr is now optional. It is enabled by inheriting form std::enable_shared_from_this in the derived class.
Minor cleanup of WorldObject