[RFC] Form validation

__NOT READY FOR MERGE__

![http://i.imgur.com/Dn4YNJ1.gif](http://i.imgur.com/Dn4YNJ1.gif)

Ci dessous une proposition concernant la validation de formulaires:

- apparition des messages d'erreurs en fonction des validateurs  (`ErrorsDirective` et `ErrorMessageDirective`)
- styling des champs de formulaires en cas d'erreur  (`FormGroupDirective`)
- un champ devient "validable" au premier `blur` ou lors du `submit`, "validable" étant le fait que les messages d'erreurs peuvent alors apparaitre  (`ValidableDirective`)
- le submit ne s'effectue pas si le form n'est pas valide (`SubmitDirective`)


```html
            <form ng-controller="MainController as main" name="myForm" ev-submit="submit()">
                <div class="form-group">
                    <label for="login">Login (required, min 3 chars, validable on blur)</label>
                    <input type="text"
                            class="form-control"
                            ng-model="user.login"
                            ng-required="true"
                            ng-minlength="3"
                            name="login"
                            ev-validable
                            >
                    <ev-errors>
                        <ev-error-message input="myForm.login" error="required">Login is required</ev-error-message>
                        <ev-error-message input="myForm.login" error="minlength">Login length must be greater than 3 characters</ev-error-message>
                    </ev-errors>
                </div>

                <button type="submit" class="btn btn-default">Submit</button>
            </form>
```
Je ne suis pas fan de passer par des événements.

**Problèmes**: 
- Ca oblige le ng-submit a être au même niveau ou parent de tous les forms dans le DOM (ce qui n'est pas forcement donné). 
- Si un form n'est pas dans le DOM au moment du click, il ne reçoit pas l’événement (cas d'un ng-if par exemple). 

**Proposition**: Passer par des callback sur les controllers.
On pourrait avoir une directive au même niveau que le `ng-form`. Elle serait required par tous les `ev-validable`.