Add command registrar functionality.

- This will allow commands to register themselves automatically.
- This will allow us to create the commands at startup based on a config
  file, and further it will greatly simplify the existing command.cpp.

r #1