Add undo, redo and lock functionality to the palette docker
Each KoColorSet now has its own undo stack. All palette modifying api in KoColorSet now creates an undo command. There are buttons in the palette docker to undo and redo. The ctrl-z/ctrl-shift shortcuts don't work for this undostack, because of focus problems.
There is also a lock button that if toggled prevents any modifying api in KoColorSet from being used. The lock status is not stored in any settings or in the resource database, so on restart every palette is unlocked again.
Other changes:
- it became necessary to refactor KisPaletteModel, KisPaletteView and KisPaletteEditor to not duplicate the state of the KoColorSet
- KisSwatchGroup is now always handled through a shared pointer instead of sometimes as a raw pointer and sometimes as a reference
- KoColorSetTest now tests the entire modification API.
Edited by Halla Rempt