Fixed self-drawing of 2D canvas with accelerated 2D canvas enabled.

The canvas 2D API allows drawing the canvas onto itself, however with
accelerated 2D canvas enabled the canvas is implemented in terms of
rendering to a texture using framebuffer objects. OpenGL does not allow
having the same texture be both a source and a destination in the same
rendering operation, so the results are undefined.

Instead, we need to blit the texture into a temporary framebuffer
object, before using that as the source of the final drawing operation.

Task-number: QTBUG-42275
Change-Id: I8114814dab2c8c6ca90b8d35a37b383b79923cb3
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Fixed upside down drawing of accelerated 2d canvas

The convention used by the Qt OpenGL paint engine's internal
drawTexture() function didn't match the texture layout of the
accelerated 2D canvas. We need to adjust the coordinates according to
whether flipped painting is in effect.

Task-number: QTBUG-42376
Change-Id: I787a2deb5f26df532f2e7c475754f0fd2189132c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Fix selections after leave event

We were sending a bad fake mouse event on leave events that caused
WebCore to stop tracking mousepresses correctly. Since we continue
to receive mouse-events after leave if a mouse button is down, we
don't need the fake mouse event to unset hover states and can skip, and
can skip sending it.

Task-number: QTBUG-41419
Change-Id: I8d50c440f7556f7e34bb0c05248577583c2550b4
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Use fixed executable allocator on x64

Since the x86-64 assembler generator depends on jumps being expressable
as 32bit offsets we need to use the fixed size executable allocator and
not the on demand allocator. This patch removes its exclusion from being
used on Windows.

Task-number: QTBUG-42417
Change-Id: Ie6b127e9b4291869566fd99cc7efe05b566c8e66
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>