sourcemap support

example output:

will output the 5 lines before and after the error location. and update stack traces with correct locations
```
ReferenceError: a is not defined
    at fail [as _onTimeout] (/Users/michaelhayes/work/jsdom-eval/test.js:6:0)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)


setTimeout(fail, 1000)

function fail() {
  console.log(a)
^
}
```
don't worry wont merge this