Clean up qimage.cpp by moving all the conversions methods out

A large part of qimage.cpp is the implementation of the various
conversions methods from one format to another. These methods could all
be moved to a separate file to make qimage.cpp smaller, and possible
later enable more aggressive optimization on the conversions.

Change-Id: I355806710281b4222114cdd9c35a7c28cbc0f692
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Avoid unnecessary double conversion over ARGB32 and ARGB32PM

Currently if the converter_map does not have an entry for how to
do a direct conversion, the image is first converted to ARGB32 and
then to the final format. In most cases the conversion to ARGB32 is
the generic converter which convert over ARGB32PM, which mean the data
is converted to ARGB32PM then to ARGB32, then to ARBG32PM and then to
final format.

This patch uses the generic converter directly everywhere there isn't
an optimized converter declared and it is valid.

Change-Id: Ibad57432ef8c58025e63a032b09f92dad4a559ee
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Support running Qt apps on the integrated GPU

By default starting an app that uses OpenGL will
switch machines with dual graphics hardware over
to the discrete GPU. This causes a delay at startup
and possibly increased power usage.

It is possible to prevent the switch:

1) Add the NSOpenGLPFAAllowOfflineRenderers attribute
to the OpenGL pixel format. This is done in this commit.

2) Add <key>NSSupportsAutomaticGraphicsSwitching</key><true/>
to the apps Info.plist. This final opt-in is left to
the app author.

Change-Id: Ibff56fd7770a6b7f8041c8bb60bf290eed24330a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>