Add an option to not generate a random nick and fix a bug in the IrcUser constructor

Hi, while using your library (real life-saver by the way), I stumbled into a few issues. Since you stated that you accept Pull Requests, I'm sending you one, which I think is useful.
I changed 2 things:

1) I added an option in ClientSettings that lets you stop the library from picking a random nickname if the first choice if not good. I needed this to instead offer the choice to the user to change the nickname.
The change introduced should not break any code, as by default, this option is set to `false`.

2) When I was running the library, it was often blowing up with an exception in the IrcUser constructor, when it is used for testing if the current user has joined a channel, or someone else has.
The reason was that the `host` string did not have all three parts, but only two of them. So far the library was prepared to handle the case when only one was present, but not when two are. I've tried to fix this.

If you find that any of these can be improved, please let me know and I'll do my best to do so.