style($compileSpec): fix typos
fix($compile): pass transcludeFn down to nested transclude directives

If you have two directives that both expect to receive transcluded content
the outer directive works but the inner directive never receives a
transclusion function. This only failed if the first transclude directive
was not the first directive found in compilation.

Handles the regression identified in e994259739821094e77a3d2c1f30c28713b7ab3a

Fixes #7240
Closes #7387
refactor($compile): change parameter name

The boundTransclusionFn that is passed in is really the one from the
parent node.  The change to parentBoundTranscludeFn clarifies this compared
to the childBoundTranscludeFn.
fix($compile): fix nested isolated transclude directives

Closes #1809
Closes #7499
refactor($compile): no need to use bind
fix($compile): don't pass transclude to template of non-transclude directive

If a directive provides a template but is not explicitly requesting transclusion
then the compiler should not pass a transclusion function to the directives
within the template.
fix(ngIf): ensure that the correct (transcluded) scope is used
fix(ngRepeat): ensure that the correct (transcluded) scope is used
style(ngRepeat): jshint was complaining about var names
fix($compile): don't pass transcludes to non-transclude templateUrl directives
fix($compile): set the iteration state before linking

This issue was introduced in b87e5fc0920915991122ba5dac87b619847b3568.
The state for each row has to be set up *before* linking.

The cloneFn (the function passed into $transclude) is called *before* actual linking and thus it is enough to update the state inside the cloneFn callback.
fix($compile): bound transclusion to correct scope

Nested isolated transclude directives.

This improves/fixes the fix in d414b787173643362c0c513a1929d8e715ca340e.

See the changed ng-ifunit test: The template inside ng-if should be bound to the
isolate scope of `iso` directive (resp. its child scope). Not to a child of
the root scope. This shows the issue with ng-if. It’s however problem with
other directives too.

Instead of remembering the scope, we pass around the bound parent transclusion.
test($compile): transcludeFn is available in compile of templateUrl directive
fix(ngAnimate): fix property name that is used to calculate cache key

Fix property name that introduced a bug that occurs when there are 2 animations per page
with similar signature. Due to mistype they were assigned same cache key so second
animation was processed incorrectly

Closes #7566
docs(tutorial): make code samples in step 7 match code in angular-phonecat

Update step_07.ngdoc

Modifying the code snippets provided to match what was on git

Closes #7521
docs($rootScope): fix incorrect docs about how dirty checking is done
chore(shallowCopy): handle arrays and primitives, and switch to using it where possible

In many cases, we want a shallow copy instead of a full copy
fix(angular.copy): support circular references in the value being copied