An extension of IPC::Open3 that uses callbacks instead of filehandles