Add the async version of the runner.
Add an OS fingerprinting method and tests. Missing mobile OS tests.
Add a browser-based test runner.