Reworked ChatWindow

Reworked how a chat window is created. ChatWindow is now a abstract
class. ChannelChat and PrivateChat(when it is created) extends
ChatWindow.
Small changes, added properties.