Bug 890210 - weak set raises an exception when iterate values already gc'ed

- Fix issue with value already gc'ed
- Added weak-set test suite
- Addressed review's comments
Merge pull request #1083 from ZER0/weak-set/890210

fix Bug 890210 - weak set raises an exception when iterate values already gc'ed r=@gozala