Undo/Redo now operates at the pdImage level

...as opposed to the pdLayer level (actually, the pdDIB level
previously).  This is necessary so that actions like "flatten image" or
"merge layer down" can be properly undone/redone.

Note that no layer edit actions currently trigger the creation of Undo
data.  This is coming.

There are still some kinks to work out.  I need some kind of flag in the
pdImage "loadFromXML" function that requests "don't overwrite certain
entries".  Without this, Undo/Redo will recreate the ENTIRE pdImage
parent from scratch, overwriting things like an updated location on the
hard drive, or a change in preferred file format.