Prevent stack overflows when a Hub implements IHub

#3228
Make Hub<T>.Clients settable for testing

- Setting Hub<T>.Clients to null will really set it to its default value

#3299