ruby: decoder support for stream and more then 1 sereal packet in buffer; fix some off-by-one bugs

* stream:
really easy to use stream support (for snappy incr,
non compressed packets):

s = TCPSocket.new 'localhost', 2000
Sereal.decode(s) do |decoded|
  p decoded
end

Sereal.decode(File.open('file')) do |decoded|
  p decoded
end

at the moment it is heavy on the read syscalls,
and because of that it is slower than just reading
buffered, and decoding after that

* more then 1 packet in buffer:

buf = ""
buf << Sereal.encode([1,2,3],Sereal::SNAPPY_INCR)
buf << Sereal.encode([3,4,5])
buf << Sereal.encode([7,8,9],Sereal::SNAPPY_INCR)
Sereal.decode(buf) do |decoded|
  p decoded
end