Build: Adds browserstack.json

Configuration for https://github.com/browserstack/browserstack-runner
Requires BROWSERSTACK_USERNAME and BROWSERSTACK_KEY env vars to be set.
Will look into Travis integration later.

Closes #601
Core: Removed obsolte JSHint setting, was for a Grunt 0.3.x workaround

Closes #602
Reporter: Move HTML related files to a new JS file
Core: Removal of QUnit.init
Core: Load initalization cleanup
Core: Simplify QUnit.load initialization

It extends QUnit.extend to accept a `undefOnly` parameter,
so we can check if it's needed to extend only unset/undefined properties
Reporter: Move done() logging to the html reporter
Core: Remove support for overwriting logging callbacks
Reporter: Move html reporter out from QUnit.load

It's now properly called through QUnit callback
Core: Remove deprecated QUnit.reset
Core: Remove externalization to QUnit of reporter methods
Core: Move DOM checking to the html reporter
Reporter: Recursive done logging
Reporter: Moving html reports for test init and finish logs