Make mechanism to parse a real modestring.

- Add awareness of ALL modes to ChannelModes so it can reject User Modes
  as "UnknownModes" so we can parse them sepearately.
Change ChannelUsers and UserChannels to use maps.
Add the ability to handle 004 messages.
Add mode handling for both Self and Channels.