fix($compile): Detect when a directive `compile` removes `tElement`

Delect when a directive `compile` function removes `tElement` and keep on with the compilation from the following node

Closes #9198
But if the element is replaced by a directive, that would happen either before or after ngCanary was set up (and subsequently deleted).

In the lines above, you're saying "add ngCanary to each node in the node list", and then immediately after, iterating over each node in the node list and deleting the ngCanary attribute.

To me, this makes no sense, the intent is really unclear, and its function is absolutely unclear from the code