perf(Scope): use remove the need for the extra watch in $watchGroup

Instead of using a counter and an extra watch, just schedule the reaction function via .

This gives us the same/similar ordering and coalecsing of updates as counter without the extra
overhead. Also the code is easier to read.

Since interpolation uses watchGroup, this change additionally improves performance of interpolation.

In large table benchmark digest cost went down by 15-20% for interpolation.
The removing used to happen [here](https://github.com/angular/angular.js/pull/8396/files#diff-44d3307b66bf51b52e110307fa57e196L415). It was confusing.
Since we no longer need to track which watchers are getting deregistered, this is a lot better :-)

I doubt changing `pop` to `shift` would actually change much for this.