Element data missing during $destroy

Changed the scope destroy to occur before the element is removed
from the DOM.  This will ensure that things like the element.data()
structure aren't destroyed before scope.$destroy() is called.

Related to issue https://github.com/angular/angular.js/issues/2658