Checks that Runtime agent correctly restore its state.

Running test: testExecutionContextsNotificationsOnRestore
{
    method : Runtime.executionContextCreated
    params : {
        context : {
            id : 1
            name : 
            origin : 
        }
    }
}
will reconnect..
{
    method : Runtime.executionContextsCleared
    params : {
    }
}
{
    method : Runtime.executionContextCreated
    params : {
        context : {
            id : 1
            name : 
            origin : 
        }
    }
}

Running test: testConsoleAPICalledAfterRestore
will reconnect..
{
    method : Runtime.consoleAPICalled
    params : {
        args : [
            [0] : {
                description : 42
                type : number
                value : 42
            }
        ]
        executionContextId : <executionContextId>
        stackTrace : {
            callFrames : [
                [0] : {
                    columnNumber : 8
                    functionName : 
                    lineNumber : 0
                    scriptId : <scriptId>
                    url : 
                }
            ]
        }
        timestamp : <timestamp>
        type : log
    }
}

Running test: testSetCustomObjectFormatterEnabled
will reconnect..
will reconnect..
{
    method : Runtime.consoleAPICalled
    params : {
        args : [
            [0] : {
                className : Object
                customPreview : {
                    bindRemoteObjectFunctionId : <bindRemoteObjectFunctionId>
                    formatterObjectId : <formatterObjectId>
                    hasBody : true
                    header : ["span",{},"Header formatted ",42]
                }
                description : Object
                objectId : <objectId>
                preview : {
                    description : Object
                    overflow : false
                    properties : [
                        [0] : {
                            name : name
                            type : number
                            value : 42
                        }
                    ]
                    type : object
                }
                type : object
            }
        ]
        executionContextId : <executionContextId>
        stackTrace : {
            callFrames : [
                [0] : {
                    columnNumber : 8
                    functionName : 
                    lineNumber : 0
                    scriptId : <scriptId>
                    url : 
                }
            ]
        }
        timestamp : <timestamp>
        type : log
    }
}
{
    id : <messageId>
    result : {
        result : {
            type : undefined
        }
    }
}
