revert: fix(mocks): $timeout#flush should not update time when empty

This reverts commit 42af8eada2803a54a98b4f792e60feb480d68a0c.

This turned out to be a bad idea as it prevents us from moving the
time forward and asserting that the component state didn't change
due to the scheduled task executing too early.
revert: feat(mocks): make $timeout#flush throw an exception when empty

This reverts commit cbf06a5d64aba537f0e2679a194d3998d8365493.

This turned out to be a bad idea because it allow us to fast-forward
the wall clock time (see previous commit).
test(Scope): fix tests after reverting commits

Making assertions on state (rather than interactions) is better anyway.
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
fix(guide) broken title overflow in navlist
Merge pull request #3822 from gdi2290/navlist-fix

fix(guide): multiline items in navlist