Build: Update to node-testswarm 0.3
Issue #365: Fix module picker for oldIE. Closes #366.

moduleFilterHtml contains <label> and <select>. oldIE emits event
only the <select> only, not on the surrounding <span>.
urlConfig: Fix checkbox event for oldIE. Fixes #369. Closes #370.
Addons: Standardize the READMEs.

Closes #361.
Test: Clean up narwhal-test.js.

Consistent with node-test.js. The "ok!" case is redundant since
this test always fail (or add it to node-test as well).
Test: Clean up, fix async.js and submit to TestSwarm

narwhal-test.js:
Consistent with node-test.js. The "ok!" case is redundant since
this test always fail (or add it to node-test as well).

grunt:
* Add async.html to qunit.
* Consistent order
* Add failing suites commented-out.

grunt-testswarm:
* Use authUsername from JSON file.
* Add run for async.html.

async.html:
* Add swarminject.
Delay start() until init() happened. Fixes #358. Closes #373.
Phantomjs: Removed the polling mechanism in favor of PhantomJS 1.6+'s `WebPage#onCallback`
Phantomjs: Include source in assertion details
Rewrote most of the JUnitLogger addon as it was in bad shape: unused variables, duplicate effort that QUnit handles internally (e.g. tallying number of total assertions, failed assertions, etc.), sub-optimal XmlWriter implementation, etc.
Escape text. Fixes #379.

* Rename escapeInnerText to escapeText and include singe quotes
  and double quotes.
* Consistent use of `bool="bool"` instead of `bool`.
* Add regression tests for unescaped names in module, test and
  assertion.
* Escape everything that does not explicitly support HTML
  (even urlConfig.id for example).
  In DOM methods text is default and HTML needs parsing. But when
  writing HTML it is the opposite: text needs escaping and html
  is default. So for security we need to reverse that and ensure
  we're escaping stuff by default.
* Rename Test..name to Test..nameHtml (because it is).
Show contents of text nodes in jsDump.node. Fixes #380.

Follows-up 4c7c688b15bc03bebedbb575cad32bdc93d8941e.
Refactor jsDump for "node". Fixes #381.

Follows-up 4c7c688b15bc03bebedbb575cad32bdc93d8941e.
Enforce jshint 'unused' and remove unused functions and variables.

* getText:
  became unused in f08dc894391c856fc9cfe715ec2198fab9af60d9

* regex:
  added in 171ad8f042007e795766893a701d9315bdedeef1

* name:
  added in c11c245c25d70b00060099717c5d4fed2b3cc3dc
Fix issue with Error.prototype.toString in IE 7

IE 7 and prior don't properly implement Error.prototype.toString which
makes regexp checks via `throws` fail unexpectedly. This provides a
method that generates a standardized ES5 error message.
Followup to 9ec5593 - fix lint and style issues
Fix URL generator to take protocol and host into account to fix usage with file protocol in IE7/8
Composite Add-on: Test suites can be named by including an obj with name & path props within array param for .testSuites()
Reenable grunt/phantom testsuites, they work fine with grunt 03.17 / phantomjs 1.7.0
Also run logs.html against TestSwarm