Extended primitive vm_object_respond_to? with visibility flag according to language version.

1.8 mode default is to not look for private methods, while 1.9 mode
default is the opposite.
Fix Array#initialize with coerceable object.
Fix destructuring assignment with coerceable object.
Fix Kernel#Array with coerceable objects.
Add specs on destructuring assignment and objects with #to_ary returning nil.
Fix Array::to_ary in case value#to_ary returns nil.