DeviceWidget and StreamWidget had some duplicate code to initialize ChannelWidgets. This patch moves some of the duplicated initialization code into ChannelWidgets to reduce repetition and to improve encapsulation.