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
Core: Rename config.module to config.moduleFilter
Build: Add external and reporter dirs to the grunt watch
Test: Register modules test names to avoid repetition

Fixes reference errors when a module has multiple tests with the same name
[fix]: config.previousModule is an object reference instead of String
Core: Detail modules and tests names in the logging callbacks

QUnit.begin and QUnit.done 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 names.

moduleDone and moduleStart also send in the callback parameter a
tests property containing an Array of its respective tests names.
[fix]: Fix use of [].indexOf
[fix]: delete config.moduleFilter to use only urlParams.module
[fix]: stop detailing modules and test names on QUnit.done
[fix]: simplify inArray loop check
[fix]: Use inArray instead of [].indexOf
[fix]: reporter logs tests in their given order