add support for oping a whole channel with /op *
refactor out mode-applying into a separate method
support '*' as a target for modes
add irssi's wii as a default alias
consistency++
Consolidate protocol messages in one namespace

Rather than defining the various messages as nested classes in SignalProxy,
RemoteConnection and in the future even more locations, have them defined
within a single namespace (and file, protocol.h).
This should make it much easier to see at a glance what kind of messages
Quassel sends, and thus help with protocol implementations.
Allow compilation against Qt < 4.7 again

Looks like I recently introduced the use of some QDateTime stuff that appeared
in Qt 4.7. Let's use the old way of calculating the lag then if built against older
Qt...

Oh, also this fixes that we would show double the lag.
Yearly bump

It's 2013, baby!
Refactor Cipher related things.

Instead of using a hash with set keys, set the key on the relevant
  CoreIrc{User,Channel}'s cipher member.
Let the cipher clear its own key (with appropriate checks elsewhere)
Instantiate a new IrcUser when necessary (a query with someone who does
  not share any channels with us means there is no IrcUser for the target
  until he says something)
Add support for DH1080 key exchange

Adds a KeyEvent and handlers, as well as a command (keyx) to initiate
and act upon a key exchange.
Use QCoreApplication::arguments() for genversion

This prevents issues with locales and unicode paths.
Fixes #1177
Add codec blacklist for UTF-8 detection

ISO-2022-JP is valid UTF-8, which means this codec needs to bypass the
auto-detection.
Bump CMake version

If I recall correctly, Tucos had figured out that we need 2.8.1 now.
Rename Internal-, Remote- and LegacyConnection to -Peer

While I'm not tooo happy with the word "Peer", I couldn't think of another one
that fits their purpose better. "Connection" was certainly less correct, and
we have so many different connections in the codebase that it got way too confusing.

At least, while Peer might not be a perfect match, it is consistent with how we always
called that in Quassel (and they still inherit from SignalProxy::AbstractPeer and have
been doing so for years!).
Fix SASL auth with Freenode

Looks like Freenode adds a trailing space to its CAP ACK reply, so Quassel
would hang after we don't trim incoming messages anymore.

I don't particularly like the startsWith() workaround, but I guess we'll need
a more capable parser anyway, should we support more caps in the future...
Fix issue with "Topic set" message

Yeah, those parens can be confusing.
Simplify CTCP parsing by default

Rather than adhering to the CTCP 'specification', reply only to single
CTCP messages without text around them. All messages not fitting the
requirements are simply displayed in the buffer. The old behaviour can
still be enabled in the settings dialog.

Fixes #1130
Only escape \ with standards-compliant ctcp

Fixes #1142
Add support for SASL EXTERNAL

This is a method to identify to nickserv during connection registration,
like SASL PLAIN, but using the fingerprint of the certificate. Currently
the method used is chosen based on the mere presence of a certificate.
SASL PLAIN is not used as fallback (either this works or the certificate
is used as normal, with the race condition).
Name labels a bit nicer