Monolithic layer observers → fine-grained events
Replace uses of doc_observers and canvas observers with the new
fine-grained events originating from the layer stack:
* Replace interaction modes' model_structure_changed_cb mechanism
* Replace all gui.document → doc_observers stuff
* Reorganize gui.document a bit so that related callbacks are together
* Update TileDrawWidget's default cursor-setting
* lib.command: layer structure does its own notifications now
* Move some model callbacks from drawwindow to the document controller
* Simplify some command frontend methods to work only on the current layer
* lib.command: Add and Remove Layers no longer send notifies
* Remove ugly user_initiated hack for select_layer()