Client side network handling changes
* Added a few internal methods to handle the "clients" and "channels" cache/lists.
* Correctly handle client<->channel relations (joining/leaving).

Server side
* If a client joins a channel, the server's response will contain a list of all clients which are in the channel.
Client GUI changes
* Removed sub widget containers in MainWindow and directly use QLayout of main window's content widget.