fix(ngInput): When 'name' attribute is a property name, '$name' should be evaluated to the property value

Not exactly sure if this is a bug fix or a feature enhancement. For simple cases such as the following, it works:
```html
<form name="myForm">
    User name: <input type="text" name="userName" ng-model="user.name" required>
    <span class="error" ng-show="myForm.userName.$error.required">Required!</span>
</form>
```

But if the `<input>` is dynamically generated and the `name` is a scope property, it run into issue:

```html
<form name="myForm">
    <div ng-repeat="field in formFields">
        <span>{{field.label}}</span>
        <input type="text" name="{{field.name}}" required>
        <span class="error" ng-show="myForm[field.name].$error.required">Required!</span>
    </div>
</form>
```