Change how rotation cascades for 2D entities

Previously when a parent rotated, it changed the origin and rotation of children directly.  This prevented independent rotation of children.

After this patch, children are rotated about their own origin, and shifted to the correct position relative to the parent.

This fixes #593.