feat($injector): print caller name in "unknown provider" errors (when available)

NGEUROPE!!!!!

Closes #8135
Closes #9721
docs(guide/scope): fix typo

Closes #10289
fix(linky): make urls starting with www. links, like markdown

It's super cool!

Closes #10290
fix(numberFilter): numbers rounding to zero shouldn't be negative

Closes #10278
fix(filterFilter): correctly handle deep expression objects

Previously, trying to use a deep expression object (i.e. an object whose
properties can be objects themselves) did not work correctly.
This commit refactors `filterFilter`, making it simpler and adding support
for filtering collections of arbitrarily deep objects.

Closes #7323
Closes #9698
Closes #9757
test(filter): test expression object with inherited properties

Related to #9984
fix(filterFilter): ignore function properties and account for inherited properties

Closes #9984
fix(filterFilter): don't match primitive sub-expressions against any prop

Basically, implement the logic detailed in the 2nd point of
https://github.com/angular/angular.js/pull/9757#issuecomment-63544399
fix($parse): Follow JavaScript context for unbound functions

Use `undefined` as the context when a function is ounbound.
E.g. when executing `foo()()`, then `foo()` is executed using the
scope as the context, the function returned by `foo()` will
have an `undefined` context
docs(guide/Working With CSS): ng-touched/untouched

Add description for ng-touched and ng-untouched CSS classes.

Closes #10302
feat(jsonFilter): add optional arg to define custom indentation

also change toJson function to accomodate passing in of number of spaces

Closes #9771
test(toJson): add extra test cases for new `pretty` behaviour
refactor(toJson): remove breaking change from previous CL

Closes #10297
style(guide/css-styling): remove trailing whitespace

Pretty self-explanatory, no mystery here.
docs(guide/css-styling): form controls are not always input elements

People frequently write custom form controls using the `ngModel` directive, this just
refactors the text to be more clear that this is possible (imho).
test($interpolate): adding tests for watching $interpolate functions

Closes #10119
docs($compile): fix spelling

Closes #10296
docs(ngTransclude): improve markup consistency

Closes #10298
fix(orderBy): maintain order in array of objects when predicate is not provided

In ES262, there are two properties which are used to get a primitive value from an Object:

- valueOf() -- a method which returns a primitive value represented by the Object
- toString() -- a method which returns a string value representing the Object.

When comparing objects using relational operators, the abstract operation ToPrimitive(O, TypeHint) is used,
which will use these methods to retrieve a value.

This CL emulates the behaviour of ToPrimitive(), and ensures that no ordering occurs if the retrieved value
is identical.

This behaviour was previously used for Date objects, however it can be safely made generic as it applies to
all objects.

Closes #9566
Closes #9747
Closes #10311
fix(orderBy): make object-to-primtiive behaviour work for objects with null prototype