Enclose cursor operations in a with-yielding call.

The with-yielding call will produce a lazy-seq in a
separate thread that will generate content from the
cursor.  The cursor will then be safely closed if the
seq is garbage collected or an error occurs.