Build: Remove frail autostart test from browserstack-runner
Test: Introduce order independent testId to replace testNumber

Introduces testId, intended to be a unique identifier for a test
based off of module name and test name only, and is therefore
order independent, enabling asynchronous test loading.

Fixes #538
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
Build: Enable PR testing with browserstack-runner