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.

This change was implemented to help facilitate the 
safe use of tailable cursors.  

See https://github.com/jpalmucci/clj-yield for more 
details on the clj-yield library.