Add functions for reading into/writing from bigarrays, avoiding copy.

Also include "blocking" variants that do not release the runtime, intended to
be used with nonblocking sockets. These functions allow better performance
with e.g. `Lwt_ssl`, by getting rid of two copy operations (`Lwt_bytes` to string buffer,
that buffer to the malloc'ed buffer allocated in `ocaml_ssl_write`)
plus one malloc/free pair per write.