Use a 64KB slab buffer per loop

Using a signle global slab was racey, even if I neved saw the race
manifest. Also handle the case when the alloc_cb is called multiple
times, before the data is consumed. Return an empty buffer in those
cases, it will cause the read callback to be called with UV_ENOBUFS.