Buffer messages when reading from NSStreamDelegate

Sometimes long messages can be split across word boundaries of a
message, and we might not receive a full command from the IRC
server. In these instances, we need to buffer the remaining
part of the message (from the last \n to the end of the string)
and hold it until we can read the rest of the message.

example:

:rothfuss.freenode.net NOTICE * :*** Looking up your hostname...
:rothfuss.freenode.net NOTICE * :*** Hmm, something happened...
:rothfuss.freenod

In this case, we can parse the first two messages, but the last
line cannot be parsed until we finish reading that line.