Core: Remove the newly introduced global hooks until we have consensus

Between locating the hooks in `QUnit` or `QUnit.config` and making them
simple setters and callback lists (like QUnit.done et al) and upcoming
plans for nested suites, we decided not to release this feature, for now.

I'm keeping the abstractions for hooks in place, so it should be trivial
to bring this back in whatever form we decide on later.

Effectively reverts 5ee31a083af3b17187f90cde54885bcc46d3dd8f and follow-up
commits.

Fixes #665
Ref #633
Ref #635
Ref #647
Build: Upgrade to commitplease 2.0.0

commitplease now accepts "[tmp]:" and similar to temporary commits,
useful while updating pull requests that are squashed later.
Core: Remove constructor

This constructor were implemented on @1039a2c, to tell if the
callback methods have been overwritten on the actual QUnit object.

It doesn't work for backwards compatibility and the old and deprecated
way to assign callbacks doesn't work anymore.

Making this change won't affect anything on the current API, even
assigning a new value on any callback function. The effects are the
same with or without this commit, proving the removed code is useless.

Closes #667
Core: Reorder code for cleanup
Core: Cleanup the logging callbacks factory
Callbacks: Restore and warn if some logging callback gets modified

Also fills the stack.js tests to verify the warnings
Async: Fail assertions after existing assert.async flows are resolved

Improves test coverage, cleans up tests for consistency. Updates `ok`
assertion to always use `push`.

Fixes #668
Closes #669
Tests: Cleanup module test, removing duplicated non-atomic tests

Extended other tests to keep the same test coverage.

Fixes #477
Build: Specify valid components for commit messages

Closes #682
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