QNX: Expand on Virtual Keyboard Support

Add additional keyboard type and enter key support to
QQnxAbstractVirtualKeyboard and update the subclasses for PPS and BPS
to match.

Update the PPS handler to be more streamlined by adding a helper
function to write the encoder and convert from type to string.

Change-Id: I32dbf9d8c44694789b5e24b4f72da8455836ae32
Reviewed-by: Roger Maclean <rmaclean@qnx.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Use XInput2 scrolling events to enable smoother scrolling

With this patch all wheel events will be generated by XInput2 where
available. This enables higher precision and smoother scrolling
especially from input devices such as touchpads on laptops.

[ChangeLog][Platform Specific Changes][X11 / XCB]Support XInput2 smooth scrolling events

Change-Id: I3b069ed92ad5c53e08af64baaece32de82e9b5c4
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Use the default height (not 0) if only width is specified

If width was specified, but not height (or vice versa) the actual
window size was not as expected:
* The window width was not the width specified.
* The window height became 0.
This was unexpected, since if both width and height was not specified
it would fallback to becoming 160x160 (on Windows).

However, with the advent of https://codereview.qt-project.org/71999
both width and height might receive sensible defaults based on the
content of the ApplicationWindow, which would mean that it might be
reasonable to expect that you only need to specify one size component
of the window.

This also fixes an assertion in file
..\..\..\3rdparty\angle\src\libGLESv2\renderer\SwapChain9.cpp, line 81
The assertion happened when a window was created with 0 height (but
valid width), and then its height got increased, causing it to become
visible.

Change-Id: Ia9e730418e35d679907bdcc59b00c3c988216c32
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>