Core: Only measure runtime of running tests, not loading

Changed config.started to be the time the first time a test is run, instead of
when QUnit is initialized. This fixes the total time reporting for scenarios
where config.autostart = false and QUnit.start() is called sometime later.

Closes #555
Tests: Inject testswarm script after loading all tests
Grunt: Watch task run the default task at start

Ref #582
Grunt: Update test-on-node task to remove globals

Ref #582
Closes #586
Assert: Simplify ok assertion

Fixes #587
Dump: Move QUnit.jsDump to QUnit.dump

Fixes gh-592
Ref gh-591
Build: Move jsdiff to external directory

Closes gh-591
export.js: Export for all CommonJS environments

This includes tests for Node.js, Rhino, and RingoJS.

Closes #521