Add support for /WHOIS, /SWHOIS, and /WHOWAS commands.

These will print output to the target user's message window,
rather than the server messages window, using NOTICE styling.
Tests are included to make sure all the 3xx and 671 messages
are parsed and formatted properly.

Also change 301 (AWAY reply) to go to that window in the same
style, since it often comes through in WHOIS (or SWHOIS)
results. This helps it stand out as a notice from the account,
rather than formatting like a PRIVMSG.

These new messages are created by custom message events in a
new ServerResponseHandler._emitUserNotice() helper function.

While here, reformat server_message_handler.js to have more
readable comments, and collapse some old CoffeeScript leftovers
into more idiomatic JS code.

Resolves issue #171.
Merge pull request #183 from tvierling/whois_commands

Add support for /WHOIS, /SWHOIS, and /WHOWAS commands.
Handle double-click on nick list and middle-click on channel list.

Double-click on nick list will open a private chat window and
switch to that window.

Middle-click on channel list will close the associated chat window,
and if it is a channel, issue a PART command to leave the channel.

As part of this, make sure the events only correspond to the
mouse button involved (use the event's "which" property, having
well-defined historical values of 1/2/3 left/mid/right). This
means that the previous channel click action now only corresponds
to the left (primary) button.
add ignores for Eclipse on my personal branch
Fix sorting of nick/channel lists when upper+lower case items exist.

HTMLList.get() was looking for a value in .nodes based on an untouched
key, but all the keys in that map have been folded to lower case by
.insert(). Fix .get() to lookup the node value by lower-case key.

While here, clean up some of the CoffeeScript cruft from nick_list.js
and html_list.js.