From now on we can share the transaction in the app::Context instead
of having the transaction in a SpriteWrap. This is useful to run
macros/scripts in a near future calling commands (and all commands
could share the same transaction).
Some changes with this:
* Added app::Context::setTransaction/transaction() methods.
* Added Tx class to create a new Transaction or use the currenet
app::Context transaction.
* Added App.transaction() scripting method.
New cmake flag -DENABLE_UI=OFF can be used to turn off the GUI
and compile a CLI-only version of Aseprite.
Requested here too:
https://community.aseprite.org/t/1351
With this change we introduce SpriteWrap and ImageWrap to keep track
of modifications made by the script in one transaction. So we can undo
the script action as one simple action.