Added context ID parameter to PutImage

This is needed for PutImages to be undoable.
Added undo and undopoint commands
Implicitly shared tiles
Protocol change: moved contextId to base class

Most messages are now tagged with the originating user ID.
Initial undo support

Clientside only, and UI is still missing
UI for undoing and redoing

Missing still:
- limit undo history size
- serverside support (undo command validation)