[vm] Rename and fix vm tests.

- We no longer have `vm.Script === vm`, so tests that did `vm.Script.runInNewContext` etc. were failing.
- We no longer translate `null` contexts to a new object; it should throw an error.
- vm tests should be prefixed with `vm`, not `script.
- Use `console.error` instead of `common.debug`.
- Use `assert.throws` more and better.
[vm] Re-do the vm statics in C++.

Otherwise, they mess up stack traces.