Completed anonymous user connection and channel creation support

You don't want to do that. While it works, it is going t ocause problems going forward, because you are modifying a protocol implementation inside the factory which should not know anything about the protocol implementation.

The proper way to do this is to subclass IRCUser and override those two methods directly. So you would create class that looks like this:
```
class IRCDDUser(IRCUser):
    def irc_NICK(self, prefix, params):
         <custom implementation here>
    
    def irc_JOIN(self, prefix, params):
         <custom implementation here
```

Then you'd make the `IRCDDFactory` produce this protocol instead of the unmodified one by changing `protocol = IRCUser` to `protocol = IRCDDUser`