Implement support for multiple channels
Show empty part message instead of 'None' if no part reason is specified
Make code slightly more consistent
On join, add all currently present users to internal bookkeeping
Move internal bookkeeping to (more tolerant) functions