fix(lib/irc): Use protected loops when iterating channels to remove users

Because we are iterating objects, we need to be sure that the property actually exists. Iterating the keys of the object accomplishes this.

Also because we are only iterating what we want, we can drop the type checks.