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