Weak Reference class that does not bother GCing.

Usage:

foo = Object.new
foo = Object.new
p foo.to_s      # original's class
foo = WeakRef.new(foo)
p foo.to_s      # should be same class
ObjectSpace.garbage_collect
p foo.to_s      # should raise exception (recycled)