Majorly redo events.py, to have a new set of non-irc-specific parameters ready for abstraction.

- Rename event.irc_message to event.context. This allows for getting the content of a message in a non irc-specific manner
- Instead of having event.conn depend on event.irc_paramlist, instead have it be set in creation
- Add an event.target variable to show the target of an event. This is currently only set in INVITE and KICK events
- Add an event.irc_ctcp_text for when a CTCP is used from IRC. This makes it easier for plugins to access CTCP command/text
- Add an EventType enumeration for specifying different types of events in a non-irc-specific manner
- Update plugins to use event.content instead of event.irc_message
- Set event.bot when creating on connection.py, instead of setting it in child events in bot.process
- Remove event.server, as it's irc-specific and can be easily gotten from event.conn.server
Merge IRCConnection into BotConnection
Split BotConnection into an abstract Connection, and an implementation IrcConnection.

Also:
- Change realname to point to cloudbot.pw
- Fix QUIT messages not being displayed when being killed
- Change conn.cmd(name, [arg1, arg2]) to conn.cmd(name, arg1, arg2)
- Add conn.action and conn.notice for non-irc-specific action/notices
Add formatting.strip_colors method for IRC color stripping
Expose cloudbot.log_dir for external usage by plugins
Add @hook.event(EventType.X) for non-irc-specific event catching
Make tell use conn.name instead of conn.server, since conn.server isn't always unique
Add logging config and move logging config options to it
Complete rewrite of log plugin
Add profiling plugin for debugging