chore(sauce): use tunnel-identifier and ready-file only on Travis

When running locally, there's not TRAVIS_JOB_NUMBER env variable defined and it screws
the Sauce Connect (it uses a tunnel with empty name), this makes it work locally without defining
TRAVIS_JOB_NUMBER env variable.

Also, if you run the sauce_connect_setup.sh locally, without having SAUCE_CONNECT_READY_FILE, it
does not pass the `--ready-file` argument to avoid Sauce Connect blowing up.
chore: update Karma to v0.10
chore: update Node.js on Travis
chore: disable npm install on Travis

Grunt is configured to run `npm install` before every task. That is convenient when switching a branch for example.

On Travis, this makes no sense and is causing tons of NPM warnings (eg. packages not defining repository field etc).
chore(travis): cleanup travis_build.sh
chore: fix Travis build

Specify hostname/port for connect server to avoid
https://github.com/joyent/libuv/issues/826
test(docs): add missing createMockWindow()

Add missing angular.mock.createMockWindow (removed in
0dd062231a4d495133fd907eeae95c566380c6e1), that the docs tests were
using.
chore(travis): add docgen unit tests to Travis build
chore(ngdocs): fixup the docs version switcher
test(docs): don't mock out window unnecessarily
docs($http): added return to interceptors success callback
fix($timeout): clean deferreds immediately after callback exec/cancel

Make sure $timeout callbacks are forgotten about immediately after
execution or cancellation.

Previously when passing invokeApply=false, the cleanup used $q and so
would be pending until the next $digest was triggered. This does not
make a large functional difference, but can be very visible when
looking at memory consumption of an app or debugging around the
$$asyncQueue - these callbacks can have a big retaining tree.
fix(tutorial): fix broken link caused by bad line break