Set SSL options to sane default and enfore server cipher preferences

Original PR #856
core_user Inherit CommandNick from SplitCommand, only handle it for local users
core_user Deduplicate code that calls the OnUserRegister hook
Move calling the OnUserPreNick() hook and the restrictbannedusers check from core to cmd_nick (core_user)
Remove now needless User::ForceNickChange()

Change call sites to call ChangeNick()
Deduplicate code in User::ChangeNick()
Get rid of irc::strings (assign()) in User::ChangeNick()
User::ChangeNick() cannot fail if the new nick is the uuid, document this and rely on it
m_spanningtree Replace manual string building of outgoing commands with CmdBuilder where possible
m_spanningtree Add optional expected nick TS parameter to SVSNICK

Drop SVSNICK if the expected nick TS is present and it does not match the user's nick timestamp
m_spanningtree Fix fake direction detection for commands
m_spanningtree Extract logic that finds the source user for an incoming command into a function