m_cap Instead of using case insensitive compare convert the subcommand to uppercase

This way if we send back the subcommand it will be in uppercase even if the client sent it in lowercase
Fix various cases of UUID exposure.

- Introduce WriteCommand which sends * when the user has not registered.
- Switch a ton of code to use WriteCommand instead of WriteServ.
- Convert WriteNotice to be a wrapper around WriteCommand.
- Only send * when NICK has not been sent instead of before registration.
Convert irc::stringjoiner to be a method instead of a class.

Add separator parameter