When the DRAG tool is active while there is an active selection, when dragging starts, the contents of the selection should be cut from the currently active Layer and be pasted as a new Layer, which will continue the drag.
Split `definitions/document.ts` into unique files per actor type.
Create `model` folder to store the above types, their factories and the state changing actions.
### Motivation
It'd be great if we could see a small thumbnail preview in the layers panel to more easily distinguish between layers visually.
In this changeset we introduce the thumbnail cache. When enabled, each layer is represented by a thumbnail which can be requested from multiple subscribed consumers (currently only the layer panel).
Thumbnail updates are deferred to keep CPU usage low and performance high.
* Restructure and rename actor/renderers
* Rename cache flushing functions to reflect their scope
* Move canvas instance management to dedicated service
* Type resize-canvas-window Vue file