Restrucutred commands and how they are accessed.

Did this in order to add more metadata to commands, and provide good info for
displaying help and listing commands in-game.