unset on 2-level & 3-level parent attribute

SuperModel.unset() works on child attributes but fails on parent (if they have child).
This pr reproduces the problem with two tests and solves them.

ps. the diff is a bit cumbersome because the src file wasn't up to date. The only change is on line 73.