chore(grunt-utils): fix java classpath on Windows
chore(travis): speed up the build

- parallelize the tasks
- cache requests (e2e tests)

This reduces the time from ~18min to ~12min.

It makes the output little messy. We could buffer output of each task and display it once it's fully finished, nicely. I think giving instant feedback is better.
chore(grunt-utils): remove unnecessary quotes from minerr_url

The quotes were causing the minerr processing to fail on Windows
revert: fix(compiler): corrects component transclusion on ...

This reverts commit 15e1a29cd08993b599f390e83a249ec17f753972.

The original commit was fixing two issues - one of them was
preventing attributes that triggered directives that replaced
the compiled node to be merged into the new node.

This change was a breaking change (as seen in the diff of the
tests in this commit) and that's why it's being removed.

A proper fix will follow.
fix($compile): prevent infinite loop w/ replace+transclude directives

Previously if a template contained a directive that had a template
(sync or async) and the directive template was to replace the original
element and the directive template contained another directive on the
root element of this template and this new directive was an element
transclude directive then an infinite recursion would follow because
the compiler kept on re-adding and reapplying the original directive
to the replaced node.

This change fixes that.

Closes #2155
fix(bower): Use latest ng-closure-runner
docs(tutorial/step9): formatted Unicode character line

Add tick and cross mark corresponding to their respective unicodes.
fix(ngCloak): hide element even when CSS 'display' is set

Previously an element like
<div class="foo ng-cloak">...</div>
would still be annoyingly visible if it matched a CSS rule like
.foo { display: inline-block; }, overriding ng-cloak's display: none.
fix(jqLite): prepend array in correct order

Match jQuery behavior when prepending array into empty element
fix($parse): disallow access to Function constructor

Enhances sandboxing of Angular Expressions to prevent attacks via:

  {}.toString.constructor(alert("evil JS code"))
refactor(core): use native String.prototype.trim if available
fix($sniffer): detect transition/animation on older Android browsers

The stock Android browser doesn't support the current for-in body/style
detection for animations and transitions but we can manually fix this.
This is useful for PhoneGap web-views or traditional web-apps using the
stock browser.
fix(i18n): Do not transform arrays into objects

Do not trasnform arrays into objects when generating the locale objects
Add unit test for this check
fix(grunt): Give java 2g of memory

Give the java build process 2g of memory
fix($compile): empty normalized href should pass sanitation check

Sometimes IE returns an empty string for its normalized href on a tags.
This should pass the sanitation check in $compile.

Closes #2219, #2593
docs(guide/directive): make directive controller minification-safe

It is best to emphasize that the "controller" property needs to be min safe

Closes #3125
docs(input): ng-model doesn't work well with isolated scope directive

Closes #3123
docs(guide/e2e-testing): fix typos
chore(grunt): tweak ng-closure-runner setup
fix(angular.equals): do not match keys defined in the prototype chain

Merely testing for object[key] will give incorrect results on keys
defined in Object.prototype.
Note: IE8 is generally broken in this regard since `for...in` never returns
certain property keys even if they are defined directly on the object.

See #2141 - partially merges this PR