Some small performance and thread safety improvements

I saw some small improvements I would recommend.  There are others I want to recommend, but these seem like some more obvious inital ones.

In Channel.java I saw you were using a ConcurrentHashMap, but the way you were using it was not thread safe.  So I am providing a few recommendations to solve the thread safety in there (I will comment these per line to indicate why the change).

In IrcQueue.java it would be more performant to use an ArrayDeque than a LinkedList here.  The only reason you may not want to use it would be if you want to maintain java 1.5 compatability (as it was added in 1.6 I believe).
This is another check then act race condition.  Instead we just attempt to remove the old value, and then update it if it was removed.

There is still some thread safety concerns here (for example there is a period of time where there is no entry in the hash map for that name).  But those existed before my fix, so I left them for now.