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.
I don't see a difference when switching to Predicate. I'm using Operation to create a closure so that the cache or the function result can be referenced in `getCommands(Operation operation)`. Using a `Predicate` does not change this, and I dont need to stop the iteration in any of my cases.