[ocaml] fix uint32 parsing

Don't use int32 to represent uint32 so we don't get overflows...
When extracting an uint32 from a bytestream, copy it to a C uint32 first,
then convert that to an int64 for usage in OCaml (since it doesn't have unsigned ints)

This addresses #793 at least for unsigned 32bit values.
Only tested on 64bit system so far...