Tech Debt: Use `throw new Error("message")` syntax

Updated the use of `throw("message")` to `throw new Error("message")` I
was motivated to do this primarily because of the issue raised [here](https://github.com/emberjs/ember.js/issues/5366)
raising errors in this way will not only allow Ember applications to
utilize the `throwUnmocked` setting but should provide a consistent
error raising experience across all major browsers as detailed
[here](http://www.nczonline.net/blog/2009/03/10/the-art-of-throwing-javascript-errors-part-2/)

A test has been added. To prove that we are actually throwing an error.
We shouldn't ever get here, and even if we did, `start()` wouldn't do anything as this test is not async. I think we should probably make the test async, then add a negative assertion here: `ok(false, ...)`

We'd also need a `start()` call in the `catch` block. Last thing, can you add a message to that `ok` assertion you have?

Thanks~