Unset public properties also cause calls to __unset()

`__unset()` was being called only for `private` and `protected` properties, as it seems.