docs(tutorial/step02): fix formatting
docs(tutorial/step05): fix formatting, use DI annotations in example code
docs(tutorial/step07): improve explanations, add note about ngRoute
docs(tutorial/step08): use DI annotations
docs(tutorial/step10): use DI annotations
docs(tutorial/step11): use DI annotations, fix summary
docs(tutorial/step12): summary link to closing notes
docs(tutorial/step07): explain injecting providers in callout
docs(tutorial/step12): fix callout formatting
chore($compile): remove dead code
style: strip white space from files
fix($compile): make order directives w/ same priority deterministic

Array.prototype.sort is speced out to be as potentionally unstable sort,
which is how it's implemented in FF and IE. This has caused the order
of directives with the same priority to vary between browsers.

For consistency sake, we now consider directive name and registration,
order when determining the order of directives with the same priority.

Note: it is still possible to get into a situation when the directive
order is underministic - when source files are loaded asynchronously
in non-deterministic order and there are are directives registered
with the same name and priority, the order in which they will be applied
will depend on the file load order.
fix(directives): correct priority of structural directives

BREAKING CHANGE: the priority of ngRepeat, ngSwitchWhen, ngIf,
ngInclude and ngView has changed. This could affect directives that
explicitly specify their priority.

In order to make ngRepeat, ngSwitchWhen, ngIf, ngInclude and ngView
work together in all common scenarios their directives are being
adjusted to achieve the following precendence:

Directive        | Old Priority | New Priority
=============================================
ngRepeat         | 1000         | 1000
---------------------------------------------
ngSwitchWhen     | 500          | 800
---------------------------------------------
ngIf             | 1000         | 600
---------------------------------------------
ngInclude/ngView | 1000         | 400
fix($compile): abort compilation when duplicate element transclusion

Issue an error and abort compilation when two directives that ask for transclusion are found
on a single element. This configuration is not supported and we previously failed to issue
the error because in the case of element transclusion the compilation is re-started and this
caused the compilation context to be lost.

The ngRepeat directive has been special-cased to bypass this warning because it knows how to
handle this scenario internally.

This is not an ideal solution to the problem of multiple transclusions per element, we are
hoping to have this configuration supported by the compiler in the future. See #4357.

Closes #3893
Closes #4217
Closes #3307
fix($animate): ensure that a timeStamp is created if not provided by the browser event

Firefox and (sometimes) Opera may not provide a timeStamp value in their event when passed
to the event handler. This may cause animations not to close properly. This fix will automatically
create a timeStamp value for the event in this situation when missing.

Closes #3053
docs(tutorial/step-5): add missing formatting to examples

The indenting doesn't work for code samples that are inside bullet points.

Closes #4403
docs(tutorial/step-04): actually add age property to the code example

Closes #4400
docs(tutorial/step-05): fix incomplete sentence

Closes #4399
docs(booleanAttrs): improve grammar and clarity

Closes #4392
docs(ngNonBindable): improve description

Closes #4391