Implement shape(left, top)

The shape DSL now accepts:

  * No arguments (left and top default to 0, 0)
  * A left and top
  * A left, top, and some styles
It'd be a bit more common pattern to make sure that `styles` gets `left:` and `top:` set from the parameters before `style_init` rather than calling move later on. Then the underlying initialization will take care of setting things properly.

Mainly concerned there because I suspect `move` triggers redraw hooks and/or may have deeper effects than just setting up the position state (or if it doesn't now, it easily could in the future). Initializing just from styles, though, will always be supported and free of interesting side-effects.