Fix `tabular` to satisfy `table`'s contract.
improved fix, Matthew's suggestion

please merge into 6.1.1
{impersonator,chaperone}-struct: change protocol to receive `self`

When calling a wrapper procedure for a field accessor or mutator,
provide the structure that was originally passed to the accessor or
mutator, instead of the value that was wrapped to create an
impersonator.

This is a backward-incompatible change, but I can't find any uses of
that initial argument to the wrapper procedure. Also, a wrapper can
capture the original value in its closure, while passing "self" allows
wrappers that are sensitive to overridden impersonator properties.