Remove ReceiveMessageEventArgs, ...

Add ReceiveChannelMessage and ReceiveUserMessage events, Make all
property setters in Channel private, Add == and != operators to
MessageChannel, Channel and User no longer bind to the main Receive
event and instead use the specific events to save object casts