perf(Angular): only create new collection in getBlockNodes if the block has changed

Doing something such as...
```
var scope = $rootScope.$new();
$compile( $('<div ng-if="i"></div>').appendTo('body') )(scope);
while (loop forever) {
   scope.i = (0 === ++i%2);
   scope.digest()
}
```

The `getBlockNodes` goes from about 2.5% => 0.25%.  In any real test that diff would probably round down to zero though. But for only 3 extra lines (2 being `}`) I thought I'd at least throw it out there...