organize like a proper go package
add data structures for decoding mode messages
implement join/quit and channel messages properly