Implement `bot:channel-users' Scheme function
Returns a list of users in a channel. The user objects are opaque and
should only be accessed via the accessors:
* `bot:channel-user-nick' user => nickname
* `bot:channel-user-user/host' user => user@host string
* `bot:channel-user-mode' user => channel mode bitvector
The channel mode bitvector may further inspected using:
* `bot:channel-user-has-modes?' user . modes => boolean
Where MODES is a list of mode identifiers. Valid values are:
* `bot:mode/op'
* `bot:mode/voice'
* `bot:mode/away'
* `bot:mode/ircop'
Convenience functions for checking individual mode flags are
available:
* `bot:channel-user-op?' user => boolean
* `bot:channel-user-voice?' user => boolean
* `bot:channel-user-away?' user => boolean
* `bot:channel-user-ircop' user => boolean
Additionally some futzing with other bits are included because C++ is
an evil language and I had to beat it gently with a hammer until it
did what I wanted.