compile.c: wrap funcptr

* compile.c (iseq_build_from_ary_body): enclose funcptr with
  Integer as raw pointer cannot appear in an Array.

* iseq.c (iseq_data_to_ary): extract funcptr from Integer.
iseq.c: struct accessors

* iseq.c (rb_method_for_self_aref, rb_method_for_self_aset): call
  accessor functions directly, not to be affected by [] and []=
  methods.  [ruby-core:66846] [Bug #10601]

* struct.c (define_aref_method, define_aset_method): ditto.

* vm_insnhelper.c (rb_vm_opt_struct_aref, rb_vm_opt_struct_aset):
  direct accessors of Struct.
iseq.c: wrap funcptr

* iseq.c (rb_method_for_self_aref, rb_method_for_self_aset): wrap
  funcptr.