Compilation: Properly recognize quoted strings

Fixes jQuery #14793
Support: Fix Opera 11/12 test failures

Ref a64d52ae4432385464206e2777f418dc892e7218
Build: Normalize line endings
Build: Use karma to automate unit testing
Test: Make selector tests execute in new env
Test: Make extending tests execute in new env

Remove "exclude" option from karma.conf.js
Test: Modify url helper

Modify url helper so it could work in karma environment
Test: Make utilities tests execute in new env
Build: Check karma.conf.js through jscs and jshint
Build: Small simplifications of karma config
Build: Reflect karma changes in the readme
Tests: Remove debug artefacts
Tests: Remove redundant instructions
Build: Move karma config to test folder

* Add "empty.js" file into the karma server
* Add and correct some comments in karma config
* Small simplification of instructions of the karma grunt task
* Remove karma dependency from the package.json since it's a global package
Build: Use browserstack through karma runner
Tests: Deal with empty.js path

With "/base/test/data/empty.js" path karma runner will not show 404 errors,
for local run through actual browser, 404 path will be okay.

Hackinsh, but it's probably the best thing that we can do.
Build: Specify browserstack settings
Build: Change karma initialization strategy

* Add secure environment variables

* Instead of the "browsers" module use "launchers" to store
  browserstack browser launchers info and "environment" which
  would change karma settings for different environments
Build: Clean up

* Lint karma modules
* Prettify some statements
* Use "use strict" statement in karma modules
Docs: Reflect karma related changes in the readme