MutableProxy: wrap dataclass and BaseModel methods
When calling a method on an arbitrary wrapped object, rebind it's `self` as the
mutable proxy so changes made inside the method are also tracked.
(Previously only wrapped `Base` instances had in-method tracking).