Cursor command batching

Cursors declared with ct_cursor can be batched. The first time a cursor is opened, an application can send the cursor-declare, cursor-rows, and cursor-open commands with a single call to ct_send and process the results with a single results loop.

When a cursor is reopened, the application can batch a cursor-rows command with the cursor-open command.

Batching the commands reduces the number of network round trips required to open the cursor.