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.
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.