feat(FormController): $formData function to access the form controls (plus the filter)

Implements #2791

Usage is:

```js
$scope.myForm.$formData() // return all controls on the current form
$scope.myForm.$formData({'$dirty': true}) // return only dirty controls  on the current form
$scope.myForm.$formData({'$pristine': true}, '$viewValue') // return only pristine controls  on the current form but instead, return their $viewValue
```

This is mainly useful when dealing with directives that alter the $modelValue but not the $viewValue (like the ui-mask)

Signed the CLA as Paulo de Oliveira Cesar