more consistent property-assignment in mixins
unraveled some of the bezier context mgmt

- the _save/_restoreContext stuff was real overkill
- _rollback currently saves the context’s _path, but should probably
also cache the transform and swap in a local one
- also not convinced _autofinish will behave correctly for multiple
invocations
- passing an existing path to bezier() copies the curves but not any of
the original’s state. c.f., passing a path to the Bezier() constructor
which returns an exact copy (including inherited state)