docs(compile): document $attrs.$normalize

Closes #10345
refactor(ngAria): remove local camelCase method

Closes #10338
Closes #10337
chore(travis): enable both SauceLabs and BrowserStack

Setting env var `BROWSER_PROVIDER` to `browserstack` or `saucelabs`
determines which browser provider will be used.

This does not affect the build as all jobs are set to use SauceLabs.

Switch to Karma with Socket.io 1.x, which solves some issues(*) with BS.
Thus removing `config.transports` as it is not used anymore
(Socket.io 1.x starts with polling and tries to upgrade if available).

(*) folks from BS were fiddling with socket.io configuration to get it stable.
See https://github.com/dhimil/karma/commit/4c04011850bf66a8a7556cd76ad662c568399481
This is not necessary with Socket.io 1.x.
chore(travis): clean up browserstack/saucelabs scripts
chore(grunt): remove unused code
fix(http): preserve config object when resolving from cache

Fixes #9004
Closes #9030