lib, src: add vm.runInDebugContext()

Compiles and executes source code in V8's debugger context.  Provides
a programmatic way to get access to the debug object by executing:

    var Debug = vm.runInDebugContext('Debug');

Fixes #7886.
Reason for rejecting an empty string is because in your C++ you have:
```diff
+    Local<String> script_source(args[0]->ToString());
+    if (script_source.IsEmpty())
+      return;  // Exception pending.
```
Guess my logic circuit attributed empty string => empty script source.