Implement native API callback support.

Fix a bug in v8::ReturnValue::Set() that wrote the return value to the
wrong location.  It turns out that:

  a) v8::ReturnValue is a wrapper around a pointer that points to the
     location of the return value, and

  b) v8::Value is a pointer to the v8::HandleScope slot that contains
     the pointer to the actual JS value.