WIP Fix 251: Improve error handling

Fix #251
Something like this (not tested):

```js
try {
  fn( allTypes[ type ] )
  QUnit.ok( false, "Expected Error to be thrown" );
} catch( error ) {
  QUnit.propEqual( error, { ... }, "..." );
}

`propEqual` allows you to compare the error properties while not having to replicate the exact object, e.g. ignoring the constructor. You could also use `deepEqual` with an exact object, if that's preferable.