Being consistent about throwing Errors rather than strings

Helps improve browser stack traces (especially during QUnit tests)

See also http://www.devthought.com/2011/12/22/a-string-is-not-an-error/
and http://www.nczonline.net/blog/2009/03/10/the-art-of-throwing-javascript-errors-part-2/
Build
Changelog