fix($compile): fix ng-attr vs normal attribute ordering

This ensures ng-attr always overrides normal attributes of the same name.

Fixes: #7051
Might try rewriting this like this:

```js
it('should override the attr on digest (ng-attr before)', function() {
      var log = '';
      module(function($compileProvider) {
        $compileProvider.directive('test', valueFn({
          restrict: 'E',
          link: function(s, e, attrs) {
            log += attrs.foo;
          }
        }));
      });

      inject(function($compile, $rootScope) {
        $rootScope.value = 42;
        element = $compile('<test ng-attr-foo="{{value}}" foo="Answer?"></test>')($rootScope);
        expect(element.attr('foo')).toBe('Answer?');
        expect(log).toBe('42');
        $rootScope.$digest();
        expect(element.attr('foo')).toBe('42');
      });
    });
```

so that you get an idea of what the attributes object looks like at link-time.