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.
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.
Add test for sort order in the nick list.