Join part list

* By default only join channels that are in "open" state
* JOIN command to join closed flows
* PART command to part open flows
* JOIN/PART update "open" flag through API call. JOIN also adds the new flow to listening stream and restarts it. Parted channels are still listened to, but messages are ignored.
* LIST command to list all channels
* WHOIS command now also shows user's channels