perf($parse) use a faster path when the number of path parts is low

Use a faster path when the number of path tokens is low (ie the common case).
This results in a better than 19x improvement in the time spent in $parse and
produces output that is about the same speed in chrome and substantially faster
in firefox.
http://jsperf.com/angularjs-parse-getter/6

Closes #5359
fix(closure): add type definition for Scope#$watchCollection

Closes #5475
fix($location): parse xlink:href for SVGAElements

Before this fix, the xlink:href property of an SVG <a> element could not be parsed
on click, as the property is an SVGAnimatedString rather than a DOMString.

This patch parses the xlink:href's animVal into a DOMString in order to prevent
an `Object #<SVGAnimatedString> has no method 'indexOf'` exception from being thrown,
and also to update the location if necessary as expected.

Closes #5472
Closes #5198
Closes #5199
Closes #4098
Closes #1420
docs(guide): fixed *off typo in angular.injector example comment

Closes #5441
fix(forEach): allow looping over result of querySelectorAll in IE8

In IE8 the result object
of calling `node.querySelectorAll` does not have a `hasOwnPropery`
function. However, it should be usable with `forEach`.

Related to #5400.
fix($log): should work in IE8

In IE8, reading `console.log.apply` throws an error.
Catching this errow now.

Fixes #5400. Fixes #5147.
fix($parse): return 'undefined' if a middle key's value is null

Prior to this fix, $parse/$eval would return 'null' if a middle key in
an expression's value is null, when it should be expected to be undefined.

This patch tries to remedy this by returning undefined for middle values in
expressions, when fetching a child of that null value.

For example:

```js
// Given the following object:
$scope.a = {
  b: null
};

// $scope.$eval('a.b.c') returns undefined, whereas previously it would return null
```

Closes #5480
fix($compile): remove invalid IE exceptional case for `href`

It appears that this exceptional case was only valid for IE<8 and that for IE>=8 it
was actually causing a bug with the `ng-href-attr` directive on `<a>` elements.

Closes #5479
docs(ngEventDirs): adding quick examples for new events

Closes #5338
docs($injector): use correct spacing convention for CoffeeScript functions

This convention is exhibited by http://coffeescript.org/ and https://github.com/polarmobile/coffeescript-style-guide#functions.

Closes #5354
docs(tutorial/step-4): fix typo

Closes #5356
docs(booleanAttrs): add @priority to all the boolean directives

Closes #5361
docs(ngCloak): style name is ng-cloak, not ngCloak

Closes #5374
docs($interval): remind the developer to destroy their intervals

It is essential that users of `$interval` destroy the interval when they are finished.
Otherwise you can get memory leaks.
Often `$intervals` are used in directives or controllers and developers don't think
about what happens when the component is destroyed.
If a directive/controller scope is destroyed, then the $interval should be destroyed as well.
This could cause some issues with developers who assume that the interval will be cleared
for them when the scope is destroyed.

Closes #5377

I believe that the library could/should handle this as well, but thats another issue.
fix($animate): use a scheduled timeout in favor of a fallback property to close transitions

With ngAnimate, CSS transitions, that are not properlty triggered, are forceably closed off
by appling a fallback property. The fallback property approach works, however, its styling
itself may effect CSS inheritance or cause the element to render improperly. Therefore, its
best to stick to using a scheduled timeout to run sometime after the highest animation time
has passed.

Closes #5255
Closes #5241
Closes #5405
style(animateSpec): ensure spacing between specs and describes is consistent
feat(jqLite): provide support for element.one()
feat(ngAnimate): provide configuration support to match specific className values to trigger animations

Closes #5357
Closes #5283
docs(CHANGELOG): add v1.2.6 changes
chore(release): improve the release script