fix(ngIf): destroy scope before removing element

Sometimes you want to work with the element that is being destroyed
from inside the $destroy handler for the scope.  For instance you may
want to unbind a rd party library from an element.  If the element is
already removed from the DOM before the $destroy handler is called
then you can no longer get hold of the element by id, for instance.

Closes #3237