fix(input): fix the email regex to accept TLDs up to 6 characters long

The input field email regex does't not match long domain extensions. This commit extends the email regexp to take a 6 character TLD.

Example 6-character TLDs include .museum and .travel - (e.g. allabout.travel).
feat(ngForm): Supports expression in form names

<form name="ctrl.form"> form controller will accessible
as $scope.ctrl.form instead of $scope['ctrl.form']

BREAKING CHANGE:
If you have form names that will evaluate as an expression:

<form name="ctrl.form">

And if you are accessing the form from your controller:

  Before:

  function($scope) {
    $scope['ctrl.form'] // form controller instance
  }

  After:

  function($scope) {
    $scope.ctrl.form // form controller instance
  }

This makes it possible to access a form from a controller
using the new "controller as" syntax. Supporting the previous
behavior offers no benefit.
chore(ngdoc): wrap all pages inside of a container tag for easy styling
fix($compile): always instantiate controllers before pre-link fns run

Controllers should be always instantiated after compile fn runs, but before
pre-link fn runs. This way, controllers are available to pre-link fns that
request them.

Previously this was broken for async directives (directives with templateUrl).

Closes #3493
Closes #3482
Closes #3514
docs(ngModel): clarify docs for NgModelController#

Closes #3498
fix(angular.copy): change angular.copy to correcly clone RegExp

angular.copy previously copied RegExp as an empty object. Change detects
RegExp instance and clones into new RegExp. This change is based on a previous
fix to allow Date to be copied.

Closes #3473
Closes #3474
docs(httpBackend): update documentation for expect methods

`expect` methods can receive an Object as the data parameter, which was
undocumented.
docs(ngModel): validators should return undefined for invalid values.

Closes #3525
docs($compile): update directive type signature

To avoid "Argument type Array is not assignable to parameter type function" validation error  When using the minifcation-safe array style

(eg .directive('myDirective', ['$http','$timeout','$compile', function($http,$timeout $compile).... )

Closes #3392
fix(jqLite): return array from multi select in val()
chore(bower): add a .bowerrc file
fix($q): call `reject()` even if `$exceptionHandler` rethrows

Normally $exceptionHandler doesn't throw an exception.  It is normally
used just for logging and so on.  But if an application developer
implemented a version that did throw an exception then $q would never
have called reject() when converting an exception thrown inside a `then`
handler into a rejected promise.
docs($interpolate): add example for the provider
chore(.gitignore): ignore npm-debug.log file
fix($compile): don't check attr.specified on non-ie7

the specified attribute is depricated and creates warnings in Firefox

Closes #3231
Closes #2160
docs(guide): remove superfluous });
fix(equals): {} and [] should not be considered equivalent

angular.equals was returning inconsistent values for the comparison between
{} and []:

    angular.equals({}, []) // true
    angular.equals([], {}]) // false

Since these object are not of the same type, they should not be considered
equivalent.
fix(dump): Prevented window.dump from being overridden by karma-jasmine.

In commit 6820322db562382fac903be35831275948825317 of Karma-Jasmine, the
dependency on angular.dump was removed. This caused two undesirable side
effects in the angular.js project. 1) Tests for presence of mock dump were failing,
and 2) the default window.dump was not outputting valuable angular-aware info. This
simple fix adds window.dump in testabilityPatch, to preprocess dumped input prior
to passing it to the global dump method.
fix(grunt): cache version number

caching the version number speeds up the build and preserves resources.

this also fixed EMFILE error that now occurs on some macs.
chore(package.json): fix name to work with latest NPM