Add IUserMessage
Make ReceiveMessages public, String => string
Implement IUserMessage on some numeric mesages
Add Receive event to Client, Implement all IUserMessages in User

-The new Receive event from Client is called when a new message is
parsed and all Users and Channels will listen to this event to raise
their own events.
-Move OnChannelJoin, OnChannelLeave events and the Channels property to
User
-User objects now handle most of the IUserMessage messages
-Client handles Welcome and Ping messages
-Client creates a new User object if an IUserMessage is recieved and is
not handled by any existing User instance
-Factories now allow creation of Users from MessageUser and
MessageChannel
-Factories are no longer static
-Added a Contains method to UserFactory
-Added == and != operators to MessageUser
-All properties in User now have private setters instead of internal
ones
-Removed Unused RankModes dictionary in User