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.
Fair point about the same error message being generated in two different places. I updated it so the there are two distinct messages.