test: fix up internet/test-dns after api change

* The test calls an internal API that changed in commit ca9eb71.

* Trying to reverse-lookup a bogus hostname now returns EINVAL rather
  than the (bogus!) status code ENOTIMP.
cares_wrap: don't set oncomplete property from c++

Don't set the oncomplete property in src/cares_wrap.cc, we can do it
just as easily in lib/dns.js.

Switch two closures to the 'function with _this_ object' model. Makes
it impossible for an overzealous closure to capture too much context
and accidentally hold on to too much memory.
cares_wrap: remove unused function getHostByName()

Hasn't been used in ages. Also remove its (already disabled) test.
src: centralize class wrap/unwrap

While almost all cases were handled by simple WRAP/UNWRAP macros, this
extends those to cover all known occurrences.
src: don't obj->Set(Integer::New(...), val)

Don't create an Integer when setting a numeric index on an object or an
array, use the version of v8::Object::Set() that takes an uint32_t.

Change the types of the variables from int to uint32_t and clean up
some code consistency issues while we're here.
src: fix build break from generic macro name

WRAP is too generic a macro name and causes the build to fail from
conflicts. They have been prepended with NODE_.
crypto: remove two unused static variables
util: fix isPrimitive check

Previous check failed for the edge case Object.create(null). This uses
the current v8 code for the check.
crypto: use consistent variable names

Code cleanup: don't call a Connection object `p` in some places, `c` in
other places and `ss` in yet other places. Let's just call it `conn`.

This also fixes about a million style errors in one fell swoop.
crypto: use consistent conn object unwrapping

We use `Foo:Unwrap(args.This())` everywhere else, let's use the same
idiom for Connection::Unwrap().
[vm] Re-do in terms of ported Contextify code.

Ported from https://github.com/brianmcd/contextify but with many
changes to fit into the Node.js codebase.

This is similar to node_script.cc, which formerly backed vm.js, but it
actually works well (see #3042).

As of now, it does not support the context <-> sandbox conflation that
the current vm module supports; the tests are updated to reflect that.
It also does not support the timeout parameter. Further commits will
reintroduce these features.

New tests are included to demonstrate what was fixed versus the current
vm module.
[vm] Reintroduce context <-> sandbox equality.

Contextify distinguishes between the sandbox, which is what is passed
in to the vm module and is the global object for a given context, and
the context itself, which is a C++ object in which scripts can run.

This commit hides the context from the user-facing interface, just like
in the vm module in Node.js 0.10 and lower. Users of the vm module only
deal with the sandbox objects, which internally are translated to their
corresponding contexts.
[vm] Attempt to reintroduce timeout argument.

This causes assertion failures running the timeout tests for me:

Assertion failed: !(handle->flags & UV__HANDLE_CLOSING), file src\win\async.c, line 77
[core, module, vm] Replace node_script everywhere.

It has been supplanted by contextify.