Allow manual adding of commands/runnable

- Introduce autoloadCommands()
- Introduce addRunnable() methods
- Sort commands when printing help
- Check passed class names to be non-abstract runnables
Move commands init to front of method
Merge branch 'master' of github.com:cargomedia/CM into issue-860
Sort commands inside getCommands() method
Merge pull request #860 from tomaszdurka/issue-860

Make CLI reusable outside CM project