Add back destroy fix unassign

I was talking about the fix in `ui` branch where the `#destroy` method is gone. I was asking you to look there take that fix, back-port it here (which removes the `#destroy` method) and then add your fix built upon the back-ported fix. Be careful to keep the correct ordering of the callbacks as the comment in `ui` branch suggests. see https://github.com/theforeman/staypuft/pull/157/files#diff-ae7bf35776f01886377e3e7a2f7ded9eR17