m_spanningtree Reorganize command handler declarations

Create usercommands.h for commands that are meant to be called by users (as opposed to commands expected from servers only)
Create the CommandBase class from Command

The Handle() method is not part of CommandBase, making it possible to provide a different Handle() in each class derived from CommandBase
m_spanningtree Move all server-to-server command handlers into handler classes

These commands are not registered in or called by the core. To find the handler for a command the new server-to-server command table is searched first and if there is no handler (meaning the command isn't a special s2s command), then the core is consulted, as before.