Funtional/structural changes to command hierarchy:
- Replace tree dict with nested classes
- Use inspect to traverse classes
- Add completions attribute for custom completions
- Abstract some functionality into helper methods
- PEP8