Calls allocate to create a new object of class’s class, then
invokes that object’s initialize method, passing it args. This
is the method that ends up getting called whenever an object is constructed
using .new.
VALUE
rb_class_new_instance(int argc, VALUE *argv, VALUE klass)
{
VALUE obj;
obj = rb_obj_alloc(klass);
rb_obj_call_init(obj, argc, argv);
return obj;
}