marshal.c: get back to the old behavior

* marshal.c (w_object, r_object0): separate respond_to checks and
  calling, and get back to the old behavior for 2.0.  [Bug #7564]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e