Made join/leave commands support comma-separated lists of channels, misc other microoptimization

microoptimization will be my downfall, won't it