Attaching the storage module in `vmListenerHOC` means it can propagate
down to the GUI, stage, and blocks naturally. The default VM property
value has been removed from those places so that we're not instantiating
extra VM instances any more. Instead, using one of those components
outside of the `vmListenerHOC` framework will require providing a VM
instance as a property.
* WIP: drag states in stage component
* WIP: Hacky drag canvas
* Update sprite position on drag
Use VM to put sprite into drag state and update the sprite's position while dragging.
Temporarily don't use the drawable data to drag a new canvas, this can happen whne we have somewhere to drag the sprite to.
`getBoundingClientRect` forces WebKit to recalculate the layout ("force reflow"), so cache the canvas bounding box rather than getting it on every mouse event.
The inline css method gives us nothing that CSS modules can't give us. This puts the project more in line with the way www works, and makes CSS actually readable.
Using class names gives us full control of the modal styles.