Restructured /tests directory
Changed test build to generate a nicer main test page - thanks @banguero
Changed the way QUnit reports pass/fail. Each test will now only assert once; success if all actual asserts within the test passed, and fail if any one assert failed. This simplifies the QUnit DOM structure which dramatically increases test execution performance.
Use grunt-connect for running QUnit out of a local server to make exception catching work in Chrome and Firefox.
Also fix our message checking logic to accomodate browser-specific error message prefixes for uncaught exceptions.
Remove unnecessary helper from shell options.