primitives now track their logical centers

- sub-360° arcs can rotate around their true centers rather than the
middle of their bounds box
- arrows now rotate around their endpoint
made segment caching lazier
layer() can be called without args

- since it may be useful to use the context’s current effects settings,
but apply them to a group