Add v8::Function::Call() binding.

Needs some refinement, it's still a little clunky around the edges.

This commit also implements v8::Value::As<T>() so that JS values can be
cast to other types.
Add v8::Value::IntegerValue() etcetera binding.

Add implementations for:

  * v8:Value::Int32Value()
  * v8:Value::IntegerValue()
  * v8:Value::Uint32Value()