alternateNick support, ERR_NICKNAMEINUSE handling, nick suffixing

in a case of `ERR_NICKNAMEINUSE` error, `alternateNick` is used. if it's also taken, it gets suffixed with `_` until the `NICK` command succeeds.