restructured command handling. command handlers no longer all live in command.c and have been split across different modules