Speed up recursion guard

A simple benchmarking script shows IceNine.deep_freeze running ~30x
faster on nested Hashes/Arrays:

https://gist.github.com/misfo/6600943
Add basic speed benchmark
Merge branch 'master' of https://github.com/dkubb/ice_nine into speed-up-recursion-guard
Don't delete object IDs from recursion guard

This prevents some possible revisiting of object (IDs) and kills a
TooManyStatements warning
Cleanups based on Flog output
Killing mutants
Add recursion guard spec for IceNine::Freezer::NoFreeze.deep_freeze
Add spec for circular references in IceNine::Freezer::Range.deep_freeze
Refactor specs to use shared examples

* This is to ensure each context block tests the same behaviours
Fix formatting in YARD docs
Remove synthetic variable
Update flay, flog and reek thresholds
Change the object_ids to be tracked by a Hash

* Since this is part of the critical path, use the simplest
  possible data structure to store and test against.