added in operations to wrap the new protocol classes.  This will allow us to make choices for the upcoming bulk operations as well as abstracting the cursor implementation for the commands that return cursors in addition to queries.
added aggregation command that uses a cursor when talking with a server >= 2.5.1