merge revision(s) 33361,33460: [Backport #9463]

	* gc.c (slot_sweep, rb_gc_finalize_deferred)
	  (rb_objspace_call_finalizer, rb_gc): run finalizers
	  sequencially.  [ruby-dev:44562]

	* gc.c (rb_gc_finalize_deferred, rb_objspace_call_finalizer):
	  should use ATOMIC_EXCHANGE() to check the previous value.
	  [ruby-dev:44596] [Bug #5439]


git-svn-id: svn+ssh://svn.ruby-lang.org/ruby/branches/ruby_1_9_3@44762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e