Add support for single-channel protocols.

These are protocols that may have multiple channels but require that the bot/user is only in one of them at a time. It means that you may specify None for the target when using certain channel-related functions and expect them to use the current channel instead.