feat(tutorial): add step 12 of the phonecat tutorial
docs(jqLite): improve jqLite docs
docs(tutorial): fix style across tutorial steps
docs(guide/animations): improve animations guide
docs(tutorial/step11): correct Jasmine Matcher link

Link http://pivotal.github.com/jasmine/jsdoc/symbols/jasmine.Matchers.html
is no longer valid.

Closes #4329
test(filters): fix timezone-dependent test

Closes #4218
fix(ngMock.$interval): should use angular.isDefined

The newly introduced `$interval` mock service for ngMock calls `isDefined`
in the global namespace which fails when used within unit tests.

This change adds the missing `angular.` prefix to such `isDefined` calls.

Closes #4334
Closes #4353
docs($log): explain how to configure debug logging

Closes #4348
docs($anchorScroll): fix example controller and style

Changed controller name in example html to ScrollCtrl to match name in example js.
Add styling to example html so scrollable area is not obtrusive to documentation page design.

Closes #3898
fix(jqLite): ignore class methods on comment elements

Since c785267e jqLite uses setAttribute (rather than className property) in order to change classes. Some elements (eg. Comment) do not have this method which blows up.

jQuery silently ignores these method calls (because it uses className), so to get the same behavior as jQuery, we check for setAttribute method first.
feat(ngRepeat): use block separator comments

Issue: multi-elements ng-repeat (ng-repeat-start, ng-repeat-end) can contain elements with a trancluding directive. This directive changes content of the row (template) and ng-repeat does not work correctly (when removing/moving rows), because ng-repeat works with the original template (elements).

This changes ng-repeat behavior to traverse the DOM to find current elements everytime we are moving/removing rows (if the template has multiple elements).

Closes #3104