This allows editing the list of services at any time instead of passing a constant list at construction time. To do this, Service instances are now caller-owned and managed in an IntrusiveList instead of Publisher-owned in a std::forward_list.