Added the implementation for MessageEventArgs
Added implementation for PreviewMessageEventArgs
Removed redundant Constructor
LocalUser delegates to IModesService
Channel now delegates to IModesService
Channel shouldn't have behavior..
Nor should it have a referene to the client. But it should have a list of its users
And it should still have ToString()
Restructured the different types of Users

LocalUser keeps its original nickname and takes a func that'll generate a new nick on collision, this func takes current nick and the desired name and returns a string.
No hostname probably means its a local user
Moved extensions and collections into their own namespaces
Moved Users into their own namespace
Moved services into their own namespace
Moved eventargs to their own namespace
Moved users interfaces to the users namespace
Moved I(Channel|Local)User to the same file as the derived type