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
m_ldapauth.cpp: Allow multiple patterns for users to bypass LDAP auth
Only compile the testsuite if INSPIRCD_ENABLE_TESTSUITE is defined
Change SocketEngine functions that do not require an instance to be static
Replace SocketEngine::GetName() with INSPIRCD_SOCKETENGINE_NAME define