[composer] Mark project dirty when additional composer related changes occur (fix #7470)
Trying to fix #10164 (crash on zoom in/out)

This happens due to infinite recursion when syncing extent between
map canvas and map renderer. Not entirely sure why, seems to happen
only on 32bit systems.
Event layer function: catch various error cases for line offsets
fixing some UI bugs in settings dialog

Signed-off-by: Werner Macho <werner.macho@gmail.com>
[layertree] Do not start editing in tree view too easily
[layertree] Only add layers to layer tree if the client wanted that
[layertree] Fix python issues with addLayer()
Allow preparing expressions in QgsDataDefined without requiring a layer
[FEATURE][composer] Data defined configuration of composer item rotation
[composer] Make sure general atlas properties are imported before importing items from xml, so that items can be aware of atlas context while they are being created
[composer] Disable rotation spinbox when data defined rotation is enabled
Data defined must reprepare expression if expression changes
[composer] Refresh data defined properties when composer refresh button is clicked
[composer] Data defined rotation rotates around item center. Also update bounds of composition when item rotation changes (since that may affect the bounds).
[composer] Re-prepare expressions when atlas parameters change
[composer] Refresh data driven item properties when atlas preview is toggled on/off
[FEATURE][composer] Data defined transparency and blend modes for composer items
Work on data defined positioning - working now except for items which override setSceneRect
Data defined map rotation
finish dd scale