Added 'target' to git ignore patterns.
Make some instance variables final.
Support for original (raw) messages that are otherwise unsupported.
Basic implementation of CAP negotiation.

A basic implementation of CAP (capability) negotiation. This
implementation adds a mechanism for providing an "external" negotiator.
The negotiator will be called before registering with the IRC server in
order to query the desired CAP init command.

Then, if a negotiator is provided, it will be registered as a general
message handler, such that it can keep track of messages that are
communicated. As irc-api itself does not support CAP messages, it is
expected that the CapabilityNegotiator instance will then take over and
handle CAP negotiations. Once CAP END is sent, normal registration
procedure will take over and the server will send msg 001 and continue
with normal registration procedure.
Basic, sloppy implementation of SaslNegotiator.