Added ChannelSettings class

Added ChannelSettings class to support individual settings for each channel.
BaseEvent renamed to AbstractEvent, added required property channelType. Some refactoring.