Overall improvements to the system

- Fix parent command handling
- Fix commands registered under the same name (but different listener
of course) not having a say in being called
- Fix searching for commands
- Implement searching for multi-argument command listeners

This should also be ready for testing now