Random#srand
Random#srand reuses old RNG for the return value

This should fix one of the failing specs.
Merge branch master into random-srand
Take 4B of /dev/urandom and time.time to make seed
Seed with time only if /dev/urandom is absent
Merge branch 'master' into random-srand
Random.srand passes the last spec
Replace Random#srand with Kernel.srand

The actual sranding takes place in the W_RandomObject.srand method.
Add PID to random seed generation
Simplify the loop in W_RandomObject._generate_seed
Add Random#seed
Untag passing specs of Random.new
Random.initialize shouldn't return anything
Implement String#each_char
Merge master into random-srand
Proc.allocate raises a TypeError
Implement String#chars
Reuse existing code
Fix Hash#merge! when self is frozen
Implement Hash#update