docs(ngController): improve wording
docs(guide): add ngTagsInput to UI Widgets
docs(guide): add UI-Map to Complementary Libraries
docs(guide/index): add codeschool link
feat(attrs): trigger observers for specific ng-attributes

When an observer is set to listen on the pattern, minlength or maxlength attributes
via $attrs then the observer will also listen on the ngPattern, ngMinlength and the
ngMaxlength attributes as well.

Closes #7758
feat(NgModel): introduce the $validators pipeline
fix(NgModel): make sure the required validator uses the $validators pipeline

Fixes #5164
fix(NgModel): make sure the pattern validator uses the $validators pipeline
fix(NgModel): make sure the ngMinlength and ngMaxlength validators use the $validators pipeline

Fixes #6304
fix(NgModel): make ngMinlength and ngMaxlength as standalone directives

Fixes #6750
fix(NgModel): ensure pattern and ngPattern use the same validator

BREAKING CHANGE:

If an expression is used on ng-pattern (such as `ng-pattern="exp"`) or on the
pattern attribute (something like on `pattern="{{ exp }}"`) and the expression
itself evaluates to a string then the validator will not parse the string as a
literal regular expression object (a value like `/abc/i`).  Instead, the entire
string will be created as the regular expression to test against. This means
that any expression flags will not be placed on the RegExp object. To get around
this limitation, use a regular expression object as the value for the expression.

    //before
    $scope.exp = '/abc/i';

    //after
    $scope.exp = /abc/i;