Idea to make Zygote support mutation in easy cases

Mutation is confusing but this sounds similar to a proposal in ChainRules#521, where the idea is to make return fill!(similar(x), y) work by giving fill! a rule which poisons the gradient of its first argument.

But Zygote (1) at present doesn’t call the pullback at all when the function’s return is not used (as is common in mutating paths), and (2) since that issue seems to have been taught to ignore ChainRules’s not-implemented mechanism.

It’s possible that this has other problems too.