Tests: Extract assert tests into their own file
Assert: Add alias for throws called 'raises'

Brings back the original method name, for compatibility with environments
that consider 'throws' a reserved word.

Fixes #663
Closes #675
Build: Upgrade to commitplease 1.11.0

commitplease had a bug before 1.9.0 where it didn't properly handle the
verbose flag `git commit -v`.

https://github.com/jzaefferer/commitplease/pull/19#issuecomment-45204680

This would lead to git diff for preview getting subjected to commit
message validation, which could abort commits if it failed.

Closes #679
Core: change url() helper to output `?foo` instead of `?foo=true`

Since the URL params parsing mechanism in QUnit treats the missing value
as if the param has value of `true`, we can do the same thing in reverse.
If the parameter to serialize a URL with has the value of `true`, it's
safe to skip the value part of the query string.

Thus, toggling the checkboxes in the toolbar will result in:

    test.html?noglobals&notrycatch

instead of:

    test.html?noglobals=true&notrycatch=true

Closes #680
HTML Reporter: Enable activating config.hidepassed from URL params

Loading a QUnit test suite with `?hidepassed` appended to the URL is
useful for CI services that take a screenshot of the completed test
suite upon completion in various browsers, for example.

Since the event handlers for click and change were mostly identical, it
makes sense to consolidate them and to simply detect when we're dealing
with a SELECT menu by detecting the `selectedIndex` property.

config.hidepassed will typically be toggled after the tests are under
way or finished running. Since it's only supposed to toggle one HTML
classname, it doesn't make sense to refresh the whole page like toggling
other toolbar options does. Instead, use `history.replaceState()` if
available to update the browser URL without refreshing.

Fixes #457
Closes #678
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.
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
Fixup: Deprecated messages
Fixup: fix stack.js comment