Slightly safer previous buffer implementation

I suspect maybe this is occurring concurrently, but I can't
be sure. If that's the case, then there still may be more
bugs lurking here.
Alert broker when stream closes

Beginning to think about automatically reconnecting when a stream
error occurs.
Wait until connect to join channels
Fix issue with input textview firstResponder status

Basically, what would happen is that upon double clicking the
chatlog, the nstextview would lose its first responder status
and we were no longer able to ctrl+tab between tabs.

This might be a kludge, but at least I'm not using the
horribly deprecated -becomeFirstResponder or -resignFirstResponder
Add some better logging for this error condition

Unsure which this is happening. Reviewed the code and even in the
case that we get a single line of input that doesn't end with a
newline, it seems safe to go ahead and index into the components
with index (components.count - 1).