[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] Many fixes to make the tests pass.

- Changed `Script.prototype.runInNewContext` to be a derived method in JS, instead of one created in C++.
- Awkard `binding.ContextifyContext` + `binding.associateContextifyContext` combination replaced with simple `binding.makeContext`.
- Exceptions executing or parsing the script now have their lines corrected by `DisplayExceptionLine` to make the stack trace point to the right place.
- `ContextifyScript` verifies that it is called as a constructor.
- `ContextifyScript` methods verify that they are called on `ContextifyScript` instances.
- `ContextifyScript.prototype.runInContext` verifies that the context passed in has been `makeContext`-ed.
- Message test outputs updated to include the new lines where JS is used instead of C++ to implement a feature.