Handle throwing non-Errors without fataling.

Currently, throwing `undefined` will cause Jest to fatal: `TypeError: Cannot read property 'stack' of undefined`. In general, the support for tests throwing non-`Error` values is pretty spotty.

This improves behavior by printing the error and stack trace only if the thrown value is an `Error`. If it is not, we will now print `Throw: <value>`. For example:

```
● Jasmine › it should not fatal on undefined exceptions
  - Throws: undefined
1/1 tests failed
```

For comparison, here is how a normal `Error` value would be printed:

```
● Jasmine › it should not fatal on undefined exceptions
  - Error: Peek-a-boo!
        at Spec.<anonymous> (/data/users/yungsters/www-git/static_upstream/dlite-web/__tests__/DliteWebApplet-test.js:7:11)
        at Timer.list.ontimeout (timers.js:101:19)
1/1 tests failed
```
Hmm, it's probably not unreasonable for errors to mimic the Error object (but not actually be the error object).
Maybe `var isError = typeof e === 'object' && e !== null` is good enough for now.

Sucks that Error objects are so unspecified in JS :(