Rewrite command handling.

Now allows for commands to be registered via annotated methods. (see CommandsTest)
As well cleaned up the current handling into executors so that any future updates are easier