Fix tab completion on exotic platforms

Turns out that using the tab key as an action shortcut in an input widget
does not work reliably on all platforms, at least on OS/2 - sometimes,
the event filter would be called instead of triggering the action.

To make this more robust, we disable the action (just using it as a container
for the custom shortcut) and always catch and handle the key in the event
filter which we need anyway.

Thanks to TeLLie for bisecting this issue and finding the culprit on OS/2.