Perf: Use `Error#stack` without throwing when available

Fixes #636.
Note that for 100% parity with the `extractStacktrace` method, we _could_ change this check to be:

```js
if ( !( e.stacktrace || e.stack || e.sourceURL ) ) { /* ... */ }
```

However, those other properties never appear to be set before `throw`-ing in their pertinent browsers.