iOS: scroll screen when keyboard opens

This change will add a UIScrollView as the root
view of our view controller instead of a normal UIView.
QIOSInputContext will then scroll this view
up and down to not obscure the cursor.

Change-Id: If0758f4bf04c2b8e554e0196451154def7e3cb86

Conflicts:
	src/plugins/platforms/ios/qiosapplicationdelegate.mm
iOS: configure keyboard based on IM hints

Configure the keyboard based on IM hints returned
by the focus object

Change-Id: Ie41be78c6588b3cd9fa5a84a16f1c099304f5c0b
iOS: don't scroll after inputItem has moved

If the inputItem moves, it typically means that the user
scrolls or flicks the focus item around. In that case
we should avoid scrolling the screen, otherwise they
will "cancel out" each other. Besides, when the user
flicks, he takes control over the whereabouts
on the screen anyway.

Change-Id: Iad0762965f9dcdbcca934ce6d90a8c1413ce3ca2
iOS: update keyboard layout upon focus transfer

When iOS transfers focus from one view to another, it
asks the new view for its UIKeyInput properties before
deciding how the keyboard should be configured.

For Qt, the same QUIView is used for the whole QWindow
which means that UIKit will not change the keyboard
configuration just because we change the focus object
in Qt, since the UIView does not change.

There seems to be no way to tell UIKit that the
keyboard needs to change becuse the UIKeyInput
properties has changed. To work around this, we
briefly resign first responder status, and grabs it
again, for the same QUIView.

Change-Id: I2d15cc0c928deb023e7da58ad4669b7099dce2cf
iOS: don't loose precision when converting CG types

CGRect and CGPoint consist of CGFloat variables. So
we should convert to QRectF and QPointF rather than
QRect and QPoint.

Change-Id: I76f180e4064f54d5810c49b88fdbbcd914bdb686