Fix covariant return types in ChannelConfig interfaces for method chaining

- Does it really worth doing this? I'm tempted to remove support for method chaining for ChannelConfig.