pass client object
a lot of changes:
TODO:
-handle channel via new resource
-write some tests
-keep channel passwords in mind
-remove disconnected user from channel