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.
This is fine. Particularly since it's an inner class. I wouldn't mind it being private, but this is an impl detail and not important. This is good.