docs(ngPluralize): spell Mary's name correctly

Update ngPluralize.js

Just a silly change to the name of one of the examples that appears to be a typo. Changing Marry to
Mary as the first would be a verb and the latter would be an extremely common name.

Closes #7884
docs(tutorial/step-4): fix e2e test

After a protractor update the test syntax had to be changed.

Closes #7919
docs($provide): it is a service not an object

Closes #7917
fix(input): escape forward slash in email regexp

This messed up with syntax coloring and variable hovering in chrome developer tools and made debugging really difficult.

Closes #7938
chore(tests): remove a lingering iit in end to end tests
chore(grunt): check files in src for ddescribe/iit

Previously, only files in test/ were checked. This does not capture
end to end tests, which are in comments in src/.
docs(ngSrc): srcset used instead of src for img attribute

In `ngSrc` documentation `srcset` is used instead of `src` as `img` element attribute in the example.

Closes #7951
docs(ngModelController): update setValidity

Needs to be `$error[validationErrorKey]!=isValid` and not
`$error[validationErrorKey]=isValid`.

See https://github.com/angular/angular.js/blob/master/src/ng/directive/input.js#L1627

Closes #7934
docs(guide/compiler): change {{user}} to {{user.name}} in example

If user has an `actions` property, it should be an object,
which means if you {{user}}, it'll print out the object.
fix($injector): check if a fn is an array explicitly

This change makes the code easier to read and also fixes a compatibility issue
with opal.js which pollutes the global state by setting $inject property on
Array prototype

Closes #7904
Closes #2653
fix(numberFilter): correctly round fractions despite floating-point arithmetics issues in JS

Closes #7870
Closes #7878
fix(input): improve html5 validation support

This CL improves mocking support for HTML5 validation, fixes the behaviour which invokes validators.

Previously, an input would only be revalidated if either its value changed, or if it was the empty
string but did not suffer from bad input --- now, it will be revalidated if either the value has
changed, or the value is the empty string, there is a ValidityState for the element, and that
ValidityState is being tested by one of the validators in the pipeline.

Closes #7937
Closes #7957
docs($location): hashPrefix, html5Mode are methods

Closes #7915
docs(srcset): fix mistake in example
docs(guide/introduction): use durandal as an example of a framework

To me knockout is a library that does data binding well.
Durandal is a framework that uses knockout as it's data binding component.
perf(jqLite): don't use reflection to access expandoId

Since we allow only one copy of Angular to be loaded at a time it doesn't
make much sense randomly generate the expando property name and then be
forced to use slow reflective calles to retrieve the IDs.
fix(jqLite): change expando property to a more unique name

This was causing issue when element === window
A better strategy can be thought of later on.
chore(ngMock): replace misplaced comma with semicolon
docs(guide/unit-testing): correct spelling
docs($q): remove unnecessary $scope.apply wrapping

As of Angular 1.2, this kind of thing is no longer necessary (thank goodness!)