First fully functional implementation of TSV#traverse

Works over:

* TSV files
* Stream
* Arrays

Supports:

* Thread and Process concurrency
* Reduction into an object (Hash, Array, Stream or anything supporting `<<`)
* Reduction methods are concurrency safe (using Mutex or linux pipes)

Note I've worked around a but in Marshal that does not prevent a process
making a partial read on the stream.
Version bump to 5.9.0
Regenerate gemspec for version 5.9.0