thread.c: reduce tags and stack

* thread.c: (exec_recursive): use rb_catch_protect() instead of
  rb_catch_obj() and PUSH_TAG(), and reduce pushing tags and
  machine stack usage.

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