docs(guide): update description of $inject mechanism to be a little clearer
chore: use Karma v0.11

Karma v0.11 starts test execution immediately after a browser gets captured (instead of waiting for
all browsers). It also kills each browser immediately after it's done.

This will use our resources (SauceLabs browsers) more efficiently.
chore(travis): use ports proxied by SauceLabs

Some browser does not allow to proxy localhost and so SL uses another proxy on the VM. This proxy only proxies some ports (SauceConnect proxies all ports).

This is the issue why Safari didn't connect for e2e tests, because 9877 was not proxied.

This change makes sure we use SL enabled ports.
chore: switch back to npm grunt-parallel

The patch has been released so we don't need to rely on github branch anymore.
chore(travis): clean up the build output
chore(karma): longer reconnect timeout
chore(travis): run bower install twice to make sure it does

This is a work-around for Bower/Node.js issue (https://github.com/bower/bower/issues/830). We run `bower install` twice, as the probability of failing twice in a row is very low.

I had to extract `bower` task out of the package, because we need to run `bower install` before building and `grunt bower` can fail, which takes down the whole process and therefore it wouldn't build.
chore: fix Jenkins build
docs(guide): remove duplicated `require` section
docs($q): document notify behavior

Closes #3341
fix(ngMocks): $logProvider should not use internal APIs

angular.mocks.$LogProvider $logProvider.debugEnabled(false) is crashing
with undefined when run inside karma/jasmine test runner:

angular.module('foo', []).config(['$logProvider', function ($logProvider) {
  $logProvider.debugEnabled(false);
}]);

Closes #3612
perf(ngBindHtml): watch the original value and sanitize later
chore(readme): add Travis build status
fix(core): parse IE11 UA string correctly

It's great that IE11 wants to be compatible enough that it doesn't want
to be special cased and treated differently.

However, as long as one has to have a different code path for IE than
for the other supported browsers, we still need to detect and special
case it.  For instance, our URL parsing code still needs the same
workaround the we used for IE10.  We still see the same Access denied /
TypeError exceptions when setting certain values.  FYI, Angular doesn't
generally blindly test for IE – we also check the version number.

Thanks to modern.ie for the free IE11 test VM.

Closes #3682
chore(build): add jenkins_build.sh file