feat(ngName): allow interpolated name for form controls

ngName allows forms' fields to set their name dynamically, especially useful with ngRepeat.
Right now is not possible to validate form controls like this: ```<input type="text" name="{{field.name}}" ng-model="field.data">```
The current work-around is to use one nested form for each field but indeed it's an hack rather than a solution.

This implementation could be moved inside the directive ```ngModel``` or within its own directive ```ngName```, I left intentionally it in the NgModelController because it's slightly faster, however I can refactor it as you prefer.

this fixes also the issues #1404 and #2426