be more careful about integer overflow in Serialize.read()
be more careful about integer overflow in Serialize.read()

Previously, we were attempting to read the entire message
in one call to fillBuffer(). This was doomed to fail
if the message had more than Integer.MAX_VALUE bytes.

After this diff, we will call fillBuffer() separately for each
segment. This approach turns out to be simpler, too.
It might imply a small performance hit for messages with
many small segments, but such messages are discouraged anyway.

This diff also adds more overflow checking in the surrounding
logic.

dwrensha/capnproto-java,dwrensha/capnproto-java,dwrensha/capnproto-java