style(compileSpec): reorder and cleanup tests for $compile's transclusion feature
fix($compile): don't instantiate controllers twice for element transclude directives

This is a fix for regression introduced last week by faf5b980.

Closes #4654
fix(angular-mocks): add inline dependency annotation

Annotation allows the angular-mocks to be minified, which sometimes happens with frameworks that
automatically process files before running tests.
Also, some developers have been using this library in code for their applications.
This is not recommended as the library is only designed to support testing and not production
applications.  If you are likely to want to use the code here in production you would be best
forking and maintaining your own version of the code as we will not guarantee that we won't
break the annotation of the code in the future.

Closes #4448
docs(guide/compiler): fixed a typo

Closes #4674
feat(ngAnimate): provide support for staggering animations with CSS
fix($animate): ensure enable/disable animations work when the document node is used

Closes #4669
docs($provide): fix link to factory section
docs(guide): add link to book
docs(guide): improve links to books

Nested bullet points don't appear very nicely so resorted to nested
heading for the Learning Resources and in particular Books sections.

Closes #4677
docs(guide/directive): fix myDraggable for zoomed page

If you have zoomed into the page in your browser then the screen coordinate system no longer
matches the page coordinate system.  To ensure that dragged elements work correctly when zoomed
we should use pageX/pageY rather than screenX/screenY.

Closes #4687
fix($animate): ensure former nodes are fully cleaned up when a follow-up structural animation takes place

Closes #4435
fix($animate): use direct DOM comparison when checking for $rootElement

Closes #4679
feat(jqLite): implement the `empty` method

jQuery's elem.html('') is way slower than elem.empty(). As clearing
element contents happens quite often in certain scenarios, switching
to using .empty() provides a significant performance boost when using
Angular with jQuery.