Reduce deadlocks with DB_RMW.
Memory leak in client_printf().

libuv's uv_write() doesn't return our original buffers to us, which means we
leak memory on each write.  To avoid this, create a new client write request
struct to hold both the client and the buffer, which we can later free.
Trivial memory leak.