Tests external stack traces

Running test: testDebuggerId
Enabling debugger first time..
Enabling debugger again..
> second Debugger.enable returns the same debugger id
Enabling debugger in another context group..
> Debugger.enable in another context group returns own debugger id

Running test: testInstrumentation
{
    id : <messageId>
    result : {
        stackTrace : {
            callFrames : [
                [0] : {
                    columnNumber : 15
                    functionName : 
                    lineNumber : 0
                    scriptId : <scriptId>
                    url : 
                }
            ]
            description : stack
        }
    }
}

Running test: testDisableStacksAfterStored
> external async stack trace is empty

Running test: testDisableStacksAfterStarted
> external async stack trace is empty

Running test: testExternalStacks
(anonymous) (expr1-2.js:1:6)
-- stack2 --
store (utils.js:2:25)
(anonymous) (expr2.js:1:11)
-- stack --
store (utils.js:2:25)
(anonymous) (expr1-1.js:0:0)
