Omit 'window.' when accessing browsing location

The location object is a global, just like document.

Using it via 'window' needlessly adds complexity and, for example,
makes it harder to catch typos in static analysis.
Build: Enable jscs linelength check, fix many too-long lines

Mostly adds linebreaks to long strings, sometimes renames variables
or edits module and test names to make them shorter. Updates grunt-jscs
to allow disabling for the code from external/jsdiff.js. Keeps excluding
test/deepEqual.js from grunt file, still has 1000+ errors even without
line length check.

Fixes #654
Closes #686
Build: Fix copyright notice in src/, should include first year as well

Fixes #695
Build: Add "All" to commitplease config

All has been used in the past and I was planning to use it soon for a
clean up commit. Not sure what other component to use since we seem to
require one, now.
All: Remove use of typeof for undefined properties

Per style guide, use plain undefined checks instead.

Closes #692
Closes #702
HTML Reporter: Move QUnit.reset back to core to run it before testDone

Since the HTML reporter will always be the first to register the testDone
callback, there's no way to do custom fixture cleanup before QUnit.reset
runs. Moving this in src/test.js makes sure that the fixture reset runs
after any custom testDone callbacks, allowing proper cleanup.

This is still only an intermediate solution, since we can't just remove
QUnit.reset without addressing the need for custom resets. The source
comment in front of the QUnit.reset call is therefore somewhat misleading.
I guess we can live with that.

Fixes #697
Ref #617
Closes #698
Tests: Removes or reduces many timeouts, speeding up test runtime

This makes our testsuite finish much faster, testing the same things.
On my machine, one run now takes less than one second, while before it
took up to three seconds.

Verified in all 14 browsers using browserstack-runner.

Fixes #696
Core: Rename config.module to config.moduleFilter
Build: Add external and reporter dirs to the grunt watch
Test: Register modules test names avoiding repetition

- Fixes reference errors when a module has multiple tests with the same name

Fixes #685
Core: Detail modules and tests names in the logging callbacks

QUnit.begin now send the callback parameter with the modules
property, which now is an Array of objects each one with a
name property representing the module name and a tests property
with an Array of its respective tests objects with their
respective names and ids.

moduleDone and moduleStart also send in the callback parameter a
tests property containing an Array of its respective tests names.

config.moduleFilter is now removed to use only urlParams.module.

The HTML Reporter will logs tests since from the begin callback
listing the tests from there, this prevents logging them by
their execution, as they should be listed on their given order.

Fixes #674
Fixes #677
HTML Reporter: Modules Filter get modules names from QUnit.begin

Fix a regression that wasn't showing the modules filter.

Fixes #662
Closes #691
Tests: Move the HTML Reporter tests to a new file

Fixes #703
Build: Support CommonJS non-module exports

Replaces the narwhal test file with instructions for testing with Rhino.

Fixes #521
Build: Prepare 1.16.0 release, needs authors and history update
Build: Enable PR testing with browserstack-runner