Command cache performance fix

Ensures that Shell and JBossTools creates a new UICommand when executing a command. It uses a cache otherwise when looking up names and categories of commands.
And since Predicate returns a boolean, this can be used to stop the iteration