Merge pull request #4: allow commands to have no params.

- Remove assumptions that commands always have parameters
- Add tests to ensure empty commands and subcommands are valid.