Use macro style for RUBY_METHOD_FUNC

(VALUE(*)(...)) ->
RUBY_METHOD_FUNC
Use "new" style instead of "initialize" style

Because in some cases, placement-new failed.
Remove a needless rb_define_alloc_func
Improve local variable name

p ->
ptr