Added utility functions to QgsMapSettings
Map canvas has its QgsMapSettings, moving away from QgsMapRenderer
Marked few drawing progress reporting signals as deprecated
Moving canvas away from QgsMapRenderer, now with OTF projections working
Remove mDrawing from canvas - it is now transparent to the user
Implementation of sequential rendering to QImage
Updated overview to use rendering jobs, fixed cancellation
Map canvas uses renderer to QImage, fix for jumping image after pan
Handling of selection color in QgsMapSettings
Removed stop rendering button, deprecated QgsMapTool::renderComplete
Deprecated several map canvas signals related to rendering
Update QgsTolerance to use QgsMapSettings instead of QgsMapRenderer
More changes to use QgsMapSettings instead of QgsMapRenderer
Made labeling working without QgsMapRenderer (using QgsMapSettings)
Conversion of composer to use map renderer job
Simplified map rendering configuration.

- scene and painter DPI are always the same
- raster scale factor is always 1
- scale factor always means pixels per milimeter
- no need to force of custom-computed scale
- no "output units" - map settings always use pixels as units

The logic used previously was getting too complex:
- scene DPI vs painter DPI
- enforcing custom scale in composer
- unclear logic behind scale factor and raster scale factor settings

This is resolved by doing composer-specific tweaks inside composer:
- set map cache image's DPI (to get correct scale)
- scale printer's painter to switch from mm to pixels (dots)
Introduce flags for boolean settings in map settings.

Also revived drawEditingInformation setting in render context
Removed use of QgsMapRenderer::rendererContext()

Deprecated QImage/QPixmap switch in QgsMapCanvas
Restore advanced layer effects, labeling in composer.

Also fixes DpiY setting in composer + workaround for QPicture DPI issues
Refactoring of QgsPalLabeling

The idea was not to expose the labeling engine instance used for rendering
to other parts of the application and keep it as an implementation
detail within renderer jobs.

Resulting placement is kept in a newly created class QgsLabelingResults
which is passed from the renderer job's labeling engine to map canvas
where it is available for map tools.

Global labeling settings are now kept only in QgsProject (there is
no instance of QgsPalLabeling which would stay alive all the time).