Fix Ruby tracking code to use C hash

Patch id #330
  This is a patch to resolve bug #2034216.
  The bug is that the tracking code uses a ruby hash and thus may
  allocate objects (Bignum) while running the GC. This was tolerated in
  1.8 but is invalid (raises an exception) in 1.9.
  The patch uses a C hash (also used by ruby) instead.
Ruby 2.0 enforces strict encoding