See commit description for updates.

Separated events from their respective modules.
Added the WHOIS command and associated events and response modules.
Changed a few internal APIs to accommodate WHOIS response for channels.