PictureItem: rename calculateAverageColor to getAverageColor and make it actually return color, not set it.

Also made function const
PictureItemData::setZoom : add argument that stores applied zoom value in case supplied zoom value is out for valid range.
PictureItem: Move logic of fit* methods to PictureItemData.

Modify them to store zoom value needed in argument and make them const.
PictureItem: Move drag and beginDrag implementation to PictureItemData
PictureItemData::fitToScreen: Use QSize instead of QRect for orig_size
PictureItemRaster, PictureItemGL: Simplify some code
PictureItemData::pointToOrigin: Change width and height arguments to QSizeF
Move m_lock_mode from PictureItemData to PictureItem
PictureItemData: Merge m_offsetX and m_offsetY to m_offset. Make it protected. Add getOffset.
PictureItemGL: add m_img_size and m_rotated_img_size. Change setZoom to no longer call setRotation (small optimization)

Will remove duplicate code later
FIx bookmarks deleting

Use path instead of index as argument because index after deletion was not updating in menu actions)
In future sqlite database should be used as storage and then row ID can be used as identifier.
Change default wheel action to scroll (from zoom)