+ Added a new attribute for each undo item (undo::Modification).
+ Each item now modifies or does not modify the document (e.g. selection
actions do not modify the document).
+ Added an asterisk in tabs when the document is modified.
+ Added "undo" library (undo namespace).
+ Moved UndoHistory to undo namespace.
+ Added Undoer and UndoersCollector interfaces.
+ Converted old UndoStream to UndoersStack class.
+ Added new "undoers" namespace and moved each Undoer implementation
(classes to undo different actions) to "undoers" directory.
+ Added IO operations to "raster" objects (image, cel, layer, palette,
mask).
+ Moved some properties from Sprite to Document: lock/unlock/mutex,
filename, isModified flag, undo history, mask boundaries, file
format options, preferred editor settings, extra cel.
+ A Context now has an active document (instead of an active sprite).
+ Renamed all sprite wrappers to be document wrappers (as the mutex is
in the Document now).
+ Modifications to SharedPtr<> to be more like C++0x shared_ptr<>.
+ Added Filter, FilterManager, and FilterIndexedData interfaces.
+ Moved all widgets related to filters to src/commands/filters.
+ Added the filters library.
+ Added FilterWindow and one derived window for each filter.
+ Fixed critical bugs using "sprite resize" command and drawing
the current editor (fixed usage of invalid memory pointers).
It happens because the resize command is executed in a background
thread, and at the same time the user can cancel or move a progress
dialog (generating redraw events to the editor).
+ Anyway this change incorporates some other problems with effects
where they keep locked the sprite in the whole command execution,
so the effect preview cannot be visualized. This will be fixed with
a refactor of the entire effect/preview stuff.
+ Removed gfxdata.cpp file.
+ Removed get_gfx() from modules/gfx.h/cpp.
+ Added skin parts for each removed graphics of gfxdata.
+ Added IButtonIcon interface and an implementation for skin theme.
+ Removed "icon_buttons" from gui.cpp.
+ Now icons in button are set through set_gfxicon_to_button function.
+ Removed from Theme class check/radio_icon_size member variables
(they are replaced with the new IButtonIcon interface).
+ Removed jdraw_inverted_sprite(), now each icon has it normal/selected
version in the skin sheet.