New API for pressing shortcut keys
Caching the Keyboard and Mouse instance in UIItemContainer

This is required because KeyBoard keeps internal state about keys
pressed. If we always return new instance, this state will be of no use.
And releaseAllKeys() won't work.