Adding additional edge case tests for toThrow and toThrowError

Also, changed dealing of multiple arguments so the user can do:
`expect(fn).toThrowError(TypeError, "foo")`
instead of:
`expect(fn).toThrowError([TypeError, "foo"])`

and updated the error messaging around when the user uses this multiple argument format.